Java线程(一)
Thread类 Runnable接口 run 方法
线程的创建:
Thread()
Thread(String name)
Thread(Runnable target)
Thread(Runnable target,String name)
线程的方法:
启动:void start()
休眠:
static void sleep(long millis)
static void sleep(long millis, int nanos)
使其他线程等待当前线程终止
void join() 必须要等待当前线程终止
void join(long millis)最长等待多长时间
void join(long millis, int nanos)时间可以精确到纳秒
当前运行线程释放处理器资源
static void yield()
获取线程引用:返回当前运行的线程引用
static Thread currentThread()
如何正确停止JAVA中的线程
不要用stop()方法,要使用退出标志,如while的停止条件,这样才能使线程完整的执行完并进行清理工作
线程的互斥:关键数据同一时间只能被一个线程使用
private final Object lockObj = Object();
synchronized(lockObj){
………………
}
线程的同步:是几个线程之间的交互过程,由于某些条件的不具备使得某线程处于等待的状态,在某个时间由于某些条件再次具备,发出消息,唤醒所有线程
wait()/notify()/notifyAll() 这三个方法属于Object
线程挑用Object.wait()时会释放掉锁,使得其他线程可以获得锁
volatile保证线程可以正确的读取其他线程写入的值(可见性问题),如果没有声明volatile有可能因为可见性问题不能正确读到