学习线程
线程定义:线程是一个程序里面不同的执行路径。
进程是一个静态的概念
在一个cpu中,在某一个时间点只能执行一个线程,知识cpu转换线程执行的速度太快了,以至于人眼看不出来以为在进行,除非是双cpu或双核的电脑可以实现真正意义上的多线程。
问题一:为什么不直接使用run方法而要用start方法启动线程?
答案:用run方法不是启动线程,那叫方法的调用。
线程同步:
例:public synchronized void add() {}
他的意思是在执行该方法过程中锁定当前线程对象而不是同步方法。
同步方法的例子:synchronized public void add() {}.
如果一个方法加同步而另一个方法没加,那么别的线程可以自由的访问未加同步的方法,并且可能会对加同步的方法产生影响。
wait与sleep的区别:
wait是object的方法,而sleep是thread的方法;
wait时别的线程可以调用锁定对象,而sleep时别的线程不可以调用锁定对象。
yield方法:让出资源给别的线程。