启动一个新的线程,必须new 一个线程对象,调用线程对象的start方法
一个类,要想成为线程,可以有两个办法,一个是实现runable接口中的run 方法,然后用new 一个thread 对象,用刚才的类作为参数, 另外一个办法就是 一个类 直接继承Thread类,直接new一个 thread 对象,然后调用对象的,start方法
要想停止一个线程 停止这个线程的run 方法,线程就停掉了
多个线程同时访问一个资源的时候,需要做线程同步
锁定的机制
关键字锁定一端代码, 当执行这端代码过程中,锁定当前对象,另外一个人也想访问这个对象,需要等
一个线程 需要锁住一个对象 synchronized
死锁
两个线程都需要两个对象才能完成,第一个线程锁住了对象1,需要等待对象2, 而 第二个线程锁住了对象2 需要等待锁定对象1
线程 与 进程,
线程,一个程序里面 不同的执行路径
进程 是一个class文件,一个exe文件 是一个静态的概念
一个线程调用 start()方法就是执行 线程重写的run方法里面的内容
线程控制的方法,sleep,join(合并线程,不单出来运行了,和main线程合我一个线程,顺序执行),设置优先级。yeild 高风亮节,让出来一小会儿让别的线程 运行一会我在运行。
Synchonizied
wait 睡一会儿。notify 叫醒线程
wait 和sleep 的区别, wait是object的方法,我wait的时候 别人可以访问资源,sleep是Thread的方法,sleep时候,别人也不能访问被synchoronized 对象或代码段