1、run()和start()的区别 2、线程的基本属性和方法 NEW :还没调用start RUNABLE:正在执行run或者正在等待cup分配时间 BLOCKED:被阻塞 WAITING:被阻塞 TIMED_WAITING:被阻塞 TERMINATED:结束 NEW :还没调用start RUN ...
分类:
编程语言 时间:
2018-08-27 14:17:52
阅读次数:
176
一. 为什么要有线程 进程是资源分配的最小单位,线程是CPU调度的最小单位. 进程虽然可以提高计算机的利用率,但是进程还是有很多缺点,如果想同时做多件事,需要多进程;进程在执行的过程中,如果被阻塞,例如等待输入,整个进程就会被挂起,即使进程中有些工作不依赖于输入的数据,也无法执行. 二. 线程和进程 ...
分类:
编程语言 时间:
2018-08-24 00:29:09
阅读次数:
187
1、自旋锁,自旋,jvm默认是10次,由jvm自己控制,for去争取锁 2、阻塞锁 被阻塞的线程,不会争夺锁 3、可重入锁,多次进入改锁的域 4、读写锁 5、互斥锁,锁本身就是互斥的 6、悲观锁,不相信这里是安全的,必须全部上锁 7、乐观锁,相信这里是安全的 8、公平锁,有优先级的锁 9、非公平锁, ...
分类:
编程语言 时间:
2018-08-23 19:20:00
阅读次数:
286
synchronize锁重入: 关键字synchronize拥有锁重入的功能,也就是在使用synchronize时,当一个线程的得到了一个对象的锁后,再次请求此对象是可以再次得到该对象的锁。 当一个线程请求一个由其他线程持有的锁时,发出请求的线程就会被阻塞,然而,由于内置锁是可重入的,因此如果某个线 ...
分类:
编程语言 时间:
2018-08-20 21:48:32
阅读次数:
162
基元线程同步构造 多个线程同时访问共享数据时,线程同步能防止数据损坏。不需要线程同步是最理想的情况,因为线程同步存在许多问题。 第一个问题就是它比较繁琐,而且很容易写错。 第二个问题是,他们会损害性能。获取和释放锁是需要时间的。 第三个问题是,他们一次只允许一个线程访问资源,就可能导致其他线程被阻塞 ...
分类:
编程语言 时间:
2018-08-20 21:41:03
阅读次数:
133
在MySQL5.7中,针对MDL,菠菜源码出售(www.1159880099.com)QQ1159880099引入了一张新表performance_schema.metadata_locks,该表可对外展示MDL的相关信息,包括其作用对象,类型及持有等待情况。开启MDL的instrument但是相关instrument并没有开启(MySQL8.0是默认开启的),其可通过如下两种方式开启,临时生效修
分类:
数据库 时间:
2018-08-15 14:56:23
阅读次数:
203
本文是承接上一篇文章:JAVA多线程知识总结(一) 四.Java多线程的阻塞状态与线程控制 上文已经提到线程阻塞的集中具体类型。下面主要看引起JAVA线程阻塞的方法 1,join() 让一个线程等待另一个线程完成之后才继续执行,如A线程的执行体中调用B线程的join方法,则A线程被阻塞,知道B线程执 ...
分类:
编程语言 时间:
2018-08-05 17:02:32
阅读次数:
165
1)、把<script>标签放在<head>中意味着必须等到全部的js代码都下载解析和执行完成以后,才开始展现页面内容,为避免这个问题一般把js代码全部放在<body>元素内容后面 2)、script标签不带defer和async属性:同步模式,脚本获取和执行都是同步,页面会被阻塞,浏览器都会按照< ...
分类:
其他好文 时间:
2018-08-03 16:30:26
阅读次数:
5606
一、简介 阻塞队列是一个支持两个附加操作的队列,在普通的队列基础上对方法进行了加强。主要表现在两个方面: 支持阻塞的插入方法:当队列元素存满时,队列会阻塞要进行添加元素的线程,直到队列中的元素出现空缺。 支持阻塞的移除方法:队列为null,获取元素的线程就会被阻塞,直到队列中存在元素。 阻塞队列可以 ...
分类:
其他好文 时间:
2018-08-02 01:54:15
阅读次数:
168
进程(线程)同步的基本概念 进程之间的制约关系 1. 直接制约关系(进程同步) 这个关系主要源于进程合作,例如,有一个输入进程A通过单缓冲向进程B提供数据,当该缓冲空时,进程B因为不能获得所需数据而被阻塞,A将数据送入缓冲区时边将B唤醒。 2. 间接制约关系(进程互斥) 这种关系主要源于资源共享,比 ...
分类:
编程语言 时间:
2018-07-30 00:31:44
阅读次数:
172