[Java并发编程之美]第1章 线程基础(待更新)

第1章 线程

线程与进程

  • 进程是操作系统资源分配和调度的基本单位,但cpu资源是分配到线程的,也就是线程是CPU分配的基本单位。
  • 线程自己的栈资源中,存放的局部变量是线程私有的,其他线程无法访问,除此之外栈还存线程的调用栈帧。

线程创建

三种方式:实现Runnable接口的run方法;继承Thread类并重写run方法;使用FutureTask方式。

线程等待与通知

1 wait()

线程先要事先获得共享变量上的监视器锁,然后当一个线程调用一个共享变量的wait()方法,该线程会被阻塞挂起,并且释放掉共享变量上的锁。直到发生:(1)此后其他线程调用了该共享对象的notify或notifyAll()方法 (2)此后其他线程调用了该线程的interrupt()方法。(该线程会抛出InterruptedException异常返回)

2 wait(long timeout)
  • 超时参数timeout:如果该线程调用wait(long timeout)挂起后,(过了timeout ms时间仍未被唤醒,) 该函数会因为等待时间超时返回。
  • wait()内部就是调用了wait(0),两者相当。
3 wait(long timeout,int nanos)
4 notify()

猜你喜欢

转载自www.cnblogs.com/coding-gaga/p/11291532.html