1.线程与进程的联系:
进程是系统进行资源分配和调度的独立单位,一个进程下可有多个线程.最直观的就是打开windows的任务管理器,可以看到目前电脑中的每个进程.一个exe就是一个进程.每个进程在运行时,总会有各种子任务去执行,这就需要多线程.多线程的最大的优点就是最大限度地利用CPU的空闲时间去执行其他的任务.
2.实现线程的两种方式:
a.继承Thread类,将任务放到里面的run()方法里面.
b.实现Runnable接口,将任务放到里面的run()方法里面.
小注:两种方法本质是一样的,但是java是单继承的,所以用b方法就更加方便.
3.在对多线程操作的代码区,加入关键字synchronized可使其变为临界区.每个线程在执行临界区的代码步骤:
a.获取同步锁
b.清空工作内存
c.将主存拷贝到工作内存
d.变量计算
e.将工作内存拷贝到主内存
g.释放锁
4.调用start()方法为开启一个线程,是多线程.调用run()是运行方法,为同步
5.常用方法:
a.currentThread()方法:返回代码段正在被哪个线程调用的信息
b.isAlive():判断线程是否处于活动状态.
c.sleep():让当前线程"休眠",即处于暂停状态一段时间,单位为毫秒.
d.getId():取得线程的唯一标志.
6.停止线程:
a.stop(),过期方法
b.interrupt():目前常用的方法.
c.run()方法正常走完.
7.判断线程状态:
a.interrupted():具有将状态标志清除为false的作用,即连续二次判断,第二次必为false
b.isinterrupted():不清除状态标志