JAVA并发编程
Mrs陶
虽然路程很痛苦,但是依然坚持前行。。。
展开
-
java高级:Thread之ScheduledExecutorService的使用
一:简单说明ScheduleExecutorService接口中有四个重要的方法,其中scheduleAtFixedRate和scheduleWithFixedDelay在实现定时程序时比较方便。下面是该接口的原型定义java.util.concurrent.ScheduleExecutorService extends ExecutorService extends Executor...转载 2018-11-26 13:56:01 · 1009 阅读 · 2 评论 -
java并发编程-ThreadLocal本地线程副本变量工具类
ThreadLocal是什么ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。从数据结构入手下图为ThreadLocal的内部结构图ThreadLocal结构内部从上面的结构图,我们已经窥见ThreadLo...转载 2018-11-29 13:56:37 · 597 阅读 · 0 评论 -
Java并发编程-synchronized同步方法、同步块、脏读、锁重入、死琐
一、同步注意事项1、方法内的变量为线程安全“非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题(这是方法内部的变量是私有的特性造成的,所得结果也就是“线程安全”的了,方法的变量存放在JVM里的虚拟机栈里)。2、实例变量非线程安全如果多个线程共同访问1个对象中的实例变量,则可能出现”非线程安全“问题。如果对象仅有1个实例变量,则有可能出现覆盖的情...转载 2018-11-28 14:03:15 · 225 阅读 · 0 评论 -
并发策略-CAS算法
对于并发控制而言,我们平时用的锁(synchronized,Lock)是一种悲观的策略。它总是假设每一次临界区操作会产生冲突,因此,必须对每次操作都小心翼翼。如果多个线程同时访问临界区资源,就宁可牺牲性能让线程进行等待,所以锁会阻塞线程执行。 与之相对的有一种乐观的策略,它会假设对资源的访问是没有冲突的。既然没有冲突也就无需等待了,所有的线程都在不停顿的状态下持续执行。那如果遇...转载 2019-02-13 16:44:21 · 149 阅读 · 0 评论 -
MySQL行级锁、表级锁、页级锁
页级:引擎 BDB。表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许行级,,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。页级,表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折衷的页...转载 2019-02-13 17:19:13 · 398 阅读 · 0 评论