java 中的线程研究笔记(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/daichangxia/article/details/77931465

1.线程与进程的联系:

进程是系统进行资源分配和调度的独立单位,一个进程下可有多个线程.最直观的就是打开windows的任务管理器,可以看到目前电脑中的每个进程.一个exe就是一个进程.每个进程在运行时,总会有各种子任务去执行,这就需要多线程.多线程的最大的优点就是最大限度地利用CPU的空闲时间去执行其他的任务.在一个多线程任务中,代码的执行结果和代码的执行顺序是无关的,CPU总会在随机的时间去调用线程中的run()方法.

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():不清除状态标志




猜你喜欢

转载自blog.csdn.net/daichangxia/article/details/77931465