![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 82
MR_ChenT
这个作者很懒,什么都没留下…
展开
-
一、多线程[创建,interrupt,setDaemon,getPriority,isAlive等]
一、多线程简介在CPU上的线程,执行一个任务,宏观当然是同时执行的,但微观里的确实串行执行的,CPU通过线程中断,让某一个线程挂起来,然后切换到另一个线程,执行一会儿,再切换回来。但是线程切换来回会牺牲一定的性能,如果增加CPU那么线程是可以达到并行的。联想下我们去买电影票,先不说可以网上购买,那么们去买票人一多就要排队去, 还是得等待(这种性质就是同步)扯下皮:如果大家都不排队了,在你正...原创 2018-12-05 00:04:33 · 185 阅读 · 0 评论 -
二、多线程[wait()和notify()/notifyAll()]
一、 wait()和notify()/notifyAll()锁,这里讲的就是同步锁,同步执行的锁,释放完之后“锁”之后就丧失了执行能力了,直到notify通知到wait方法,(notify并不是释放锁),只是通知wait可以去竞争锁了,wait并不是立刻得到锁,锁在别人手里,等待别人释放。为什么要用这个 ?线程本身是操作系统中独立的个体,但是线程与线程之间不是独立的个体,因为它们彼此之...原创 2018-12-05 10:09:37 · 219 阅读 · 0 评论 -
三、synchronized锁机制
一、synchronized锁机制1、同步锁脏读:一个常见的概念。在多线程中,难免会出现在多个线程中对同一个对象的实例变量进行并发访问的情况,如果不做正确的同步处理,那么产生的后果就是"脏读",也就是取到的数据其实是被更改过的。示例:public class Lock_JobRun extends Thread{ private String str; private Lo...原创 2018-12-05 10:50:25 · 283 阅读 · 0 评论 -
四、Thread类中的静态方法
1、静态方法等的调用者Thread类中的静态方法表示操作的线程是"正在执行静态方法所在的代码块的线程"。为什么Thread类中要有静态方法?这样就能对CPU当前正在运行的线程进行操作。下面来看一下Thread类中的静态方法:currentThread()方法返回的是对当前正在执行线程实例对象的引用代码示例:public class Curr_JobRun extends Threa...原创 2018-12-05 11:33:02 · 1724 阅读 · 0 评论 -
五、ThreadLocal
使用场景:ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。例如多线程中SimpleDateFormat中的格式化,它是非线程安全的,使用肯定是不妥;如果加锁呢?那必定会影响效率,每次创建实例也是一样的。可以通过Thread...原创 2018-12-10 16:15:46 · 198 阅读 · 0 评论