![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java多线程
不知所欲
这个作者很懒,什么都没留下…
展开
-
Java多线程1 线程和进程的概述
转自:http://www.cnblogs.com/xrq730/p/4872722.html进程和线程谈到多线程,就得先讲进程和线程的概念。进程进程可以理解为受操作系统管理的基本运行单元。360浏览器是一个进程、WPS也是一个进程,正在操作系统中运行的".exe"都可以理解为一个进程线程进程中独立运行的子任务就是一个线程。像QQ.exe运行的时候就有很多子任务在运行,...转载 2018-12-26 15:46:14 · 98 阅读 · 0 评论 -
java多线程2 Thread实现的方法
转自:http://www.cnblogs.com/xrq730/p/4872722.htmlThread类中的方法调用方式:学习Thread类中的方法是学习多线程的第一步。在学习多线程之前特别提出一点,调用Thread中的方法的时候,在线程类中,有两种方式,一定要理解这两种方式的区别:1、this.XXX()这种调用方式表示的线程是线程实例本身2、Thread.current...转载 2018-12-26 15:46:32 · 142 阅读 · 0 评论 -
java多线程3 thread中的静态方法
转自:http://www.cnblogs.com/xrq730/p/4851344.html Thread类中的静态方法Thread类中的静态方法表示操作的线程是"正在执行静态方法所在的代码块的线程"。为什么Thread类中要有静态方法,这样就能对CPU当前正在运行的线程进行操作。下面来看一下Thread类中的静态方法:1、currentThread()currentT...转载 2018-12-26 15:29:53 · 194 阅读 · 0 评论 -
java多线程4 synchronized锁机制
转自:http://www.cnblogs.com/xrq730/p/4851350.html脏读一个常见的概念。在多线程中,难免会出现在多个线程中对同一个对象的实例变量进行并发访问的情况,如果不做正确的同步处理,那么产生的后果就是"脏读",也就是取到的数据其实是被更改过的。多线程线程安全问题示例看一段代码:public class ThreadD...转载 2019-03-25 16:13:55 · 107 阅读 · 0 评论 -
java多线程5 synchronzied锁的方法块
转自:http://www.cnblogs.com/xrq730/p/4851530.htmlsynchronized同步代码块用关键字synchronized声明方法在某些情况下是有弊端的,比如A线程调用同步方法执行一个较长时间的任务,那么B线程必须等待比较长的时间。这种情况下可以尝试使用synchronized同步语句块来解决问题。看一下例子:public ...转载 2019-03-25 16:14:09 · 145 阅读 · 0 评论 -
Java多线程6:synchronized锁定类方法、volatile关键字及其他
转自:http://www.cnblogs.com/xrq730/p/4853578.html同步静态方法synchronized还可以应用在静态方法上,如果这么写,则代表的是对当前.java文件对应的Class类加锁。看一下例子,注意一下printC()并不是一个静态方法:public class ThreadDomain25{ public synchr...转载 2019-03-25 16:21:13 · 94 阅读 · 0 评论 -
Java多线程7:死锁
转自:http://www.cnblogs.com/xrq730/p/4853713.html前言死锁单独写一篇文章是因为这是一个很严重的、必须要引起重视的问题。这不是夸大死锁的风险,尽管锁被持有的时间通常很短,但是作为商业产品的应用程序每天可能要执行数十亿次获取锁->释放锁的操作,只要在这数十亿次操作中只要有一次发生了错误,就可能导致程序中发生死锁,并且即使通过压力测试...转载 2019-03-25 15:15:56 · 75 阅读 · 0 评论 -
Java多线程8:wait()和notify()/notifyAll()
轮询线程本身是操作系统中独立的个体,但是线程与线程之间不是独立的个体,因为它们彼此之间要相互通信和协作。想像一个场景,A线程做int型变量i的累加操作,B线程等待i到了10000就打印出i,怎么处理?一个办法就是,B线程while(i == 10000),这样两个线程之间就有了通信,B线程不断通过轮训来检测i == 10000这个条件。这样可以实现我们的需求,但是也带来了问题:CPU把...转载 2019-03-25 15:16:13 · 91 阅读 · 0 评论 -
高并发-多线程学习笔记01
可见性导致共享把变量在线程间不可见的原因1.线程交叉执行2.重排序结合线程交叉执行‘3.共享变量更新后的值没有在工作内存与主存间及时更新;可见性 - synchronizedJMM关于synchronized的两条规定:1.线程解锁前,必须把共享变量的最新值刷新到主内存;2.线程加锁时,将清空工作内存中共享变量的值,从而使用共享变量时需要从主内存中重新读取最新的值(...原创 2019-03-05 17:46:10 · 70 阅读 · 0 评论