1.volatile本质:是java虚拟机(JVM)当前变量在工作内存中的值是不确定的,需要从主内存中读取;synchronized则是锁定当前的变量,只有当前线程可以访问到该变量,其他的线程将会被阻塞。 2.volatile只能实现变量的修改可见性,并不能保证原子性;而synchronized则可 ...
分类:
其他好文 时间:
2019-02-20 13:08:10
阅读次数:
136
1、线程的生命周期:新建、就绪、运行、阻塞、死亡 2、运行状态线程进入阻塞: 1.1 调用sleep方法主动放弃; 1.2 调用线程的suspend方法将线程挂起,不推荐使用; 1.3 线程调用一个阻塞IO方法,直到方法返回之前,该线程将被阻塞; (处于阻塞状态的线程在合适的时候重新进入 就绪状态) ...
分类:
编程语言 时间:
2019-02-16 13:58:59
阅读次数:
222
1、Java提供了一些工具方法,可以便捷控制线程的执行: 1.1 join Thread提供了让一个线程等待另一个线程执行完成的方法:join; 当某个程序的执行流中调用其他线程的join方法,该线程将被阻塞,直到被加入的线程执行完成为止; 1.2 sleep sleep可以将当前线程暂停一段时间, ...
分类:
编程语言 时间:
2019-02-16 13:21:30
阅读次数:
205
1. ReentrantLock的介绍 ReentrantLock重入锁,是实现Lock接口的一个类,也是在实际编程中使用频率很高的一个锁,支持重入性,表示能够对共享资源能够重复加锁,即当前线程获取该锁再次获取不会被阻塞。在java关键字synchronized隐式支持重入性(关于synchroni ...
分类:
其他好文 时间:
2019-02-08 20:17:44
阅读次数:
201
1.半同步复制的特征 (1)从库会在连接到主库时告诉主库,它是不是配置了半同步。 (2)如果半同步复制在主库端是开启了的,并且至少有一个半同步复制的从节点,那么此时主库的事务线程在提交时会被阻塞并等待,结果有两种可能,要么至少一个从库节点通知它已经收到了所有这个事务的Binlog事件,要么一直等待直 ...
分类:
数据库 时间:
2019-01-28 00:58:32
阅读次数:
222
vmstat:Reportvirtualmemorystatisticsvmstat[options][delay[count]]procs:[进程process]r:等待运行的进程的个数;CPU上等待运行的任务的队列长度;b:处于不可中断睡眠态的进程的个数;被阻塞的任务队列的长度;memory:swpd:交换内存使用总量;free:空闲的物理内存总量;buffer:用于buffer的内存总量;c
分类:
其他好文 时间:
2019-01-23 19:36:06
阅读次数:
180
一.原子操作 syn基于阻塞的锁的机制,1、被阻塞的线程优先级很高,2、拿到锁的线程一直不释放锁怎么办?3、大量的竞争,消耗cpu,同时带来死锁或者其他安全。 CAS的原理 CAS(Compare And Swap),指令级别保证这是一个原子操作 三个运算符: 一个内存地址V,一个期望的值A,一个新 ...
分类:
编程语言 时间:
2019-01-23 01:23:56
阅读次数:
247
A N R : Application Not Responding : 应用没有响应异常 引发ANR的原因是,组件的主线程去执行了耗时操作多少秒,就会引发ARN异常; 引发ANR异常的案例: 执行结果:此ANR异常时Android操作系统报出的,操作系统检测到组件被阻塞,认为此应用,需要结束掉了 ...
分类:
移动开发 时间:
2019-01-12 16:43:31
阅读次数:
270
阻塞方式block,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回。使用Select就可以完成非阻塞non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生 ...
分类:
其他好文 时间:
2019-01-12 15:24:33
阅读次数:
159
日常维护中,经常会碰到线程被阻塞,导致数据库响应非常慢,下面就看看如何获取是哪个线程导致了阻塞的。 blog地址:http://blog.csdn.net/hw_libo/article/details/39080809 1. 环境说明RHEL 6.4 x86_64 + MySQL 5.6.19事务 ...
分类:
数据库 时间:
2018-12-31 17:15:09
阅读次数:
234