Java多窗口卖票问题详解

Java多窗口卖票问题详解 Java 在练习Java多线程的过程中,通常都会通过多窗口卖票这个问题来详细逐渐解析多线程的线程同步,其中涉及到同步代码块,同步方法和互斥锁。 铁道部发布了...

Java多线程文件复制功能详解

Java多线程文件复制功能 Java 这里讲解一个利用Java里面的RandomAccessFile流来实现多线程文件的快速复制功能。 新建一个线程类: class BpTran...

Java多线程1:进程与线程概述详解

谈到多线程,就得先讲进程和线程的概念。 进程 进程可以理解为受操作系统管理的基本运行单元。360浏览器是一个进程、WPS也是一个进程,正在操作系统中运行的".exe"都可以理解为一个进程 线程 进程中独立运行的子任务就是一个线程...

Java多线程2:Thread中的实例方法详解

Thread类中的方法调用方式: 学习Thread类中的方法是学习多线程的第一步。在学习多线程之前特别提出一点,调用Thread中的方法的时候,在线程类中,有两种方式,一定要理解这两种方式的区别: 1、this.XXX() 这种调用方...

Java多线程3:Thread中的静态方法详解

Thread类中的静态方法 Thread类中的静态方法表示操作的线程是"正在执行静态方法所在的代码块的线程"。为什么Thread类中要有静态方法,这样就能对CPU当前正在运行的线程进行操作。下面来看一下Thread类中的静态方法: 1、...

Java多线程4:synchronized锁机制详解

脏读 一个常见的概念。在多线程中,难免会出现在多个线程中对同一个对象的实例变量进行并发访问的情况,如果不做正确的同步处理,那么产生的后果就是"脏读",也就是取到的数据其实是被更改过的。 多线程线程安全问题示例 看一段...

Java多线程6:synchronized锁定类方法、volatile关键字及其他详解

同步静态方法 synchronized还可以应用在静态方法上,如果这么写,则代表的是对当前.java文件对应的Class类加锁。看一下例子,注意一下printC()并不是一个静态方法: public class T...

Java多线程5:synchronized锁方法块详解

synchronized同步代码块 用关键字synchronized声明方法在某些情况下是有弊端的,比如A线程调用同步方法执行一个较长时间的任务,那么B线程必须等待比较长的时间。这种情况下可以尝试使用synchronized同步语句块来解...

Java多线程7:死锁详解

前言 死 锁单独写一篇文章是因为这是一个很严重的、必须要引起重视的问题。这不是夸大死锁的风险,尽管锁被持有的时间通常很短,但是作为商业产品的应用程序每天可 能要执行数十亿次获取锁->释放锁的操作,只要在这数十亿次操作中只要有...

Java多线程8:wait()和notify()/notifyAll()详解

轮询 线程本身是操作系统中独立的个体,但是线程与线程之间不是独立的个体,因为它们彼此之间要相互通信和协作。 想像一个场景,A线程做int型变量i的累加操作,B线程等待i到了10000就打印出i,怎么处理?一个办法就是,B线程w...