1.join
让线程等待一个线程完成的方法。
实例:
JoinThrea jt =new JoinThread("被join的线程");
jt.start();
jt.join();
使用join方法后,只有jt线程执行完后,才能执行其他的线程。
2.后台线程setDaemon(true)
在后台运行,为其他线程提供服务。JVM的垃圾回收线程就是典型的后台线程。前台线程都死亡后,后台线程也会死亡。
实例:
DaemonThread t = new DaemonThread();
t.setDaemon(true);
t.start();
3.线程睡眠sleep
使正在执行的线程暂停一段时间,并进入阻塞状态。用法:Thread.sleep(毫秒数);
4.线程让步:yield
暂停当前正在执行的线程,但是并不阻塞线程,只是让线程处于就绪状态,可能再次调度时,该线程又处于运行态了。用法:Thread.yield()
5.改变线程优先级setPriority
Thread提供了setPriority()与getPriority()方法来设置和返回线程的优先级,setPriority的参数是1~10之间的整数。
6.线程安全,即线程同步
(1)同步代码块synchronized(obj){里面放同步的代码},其中obj是同步监视器。例如银行账户必须要同步,代码如下
(2)同步锁Lock
有ReadWriteLock(读写锁)、ReentrantLock(可重入锁),使用Lock对象可以显示的加锁、释放锁,用法如下