随笔分类 -  多线程

you could't say no
摘要:CAS(CompareAndSwap的缩写),即:比较并替换。CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。CAS指令执行时,当且仅当内存地址V的值与预期值A相等时,将内存地址V的值修改为B,否则就什么都不做。整个比较并替换的操作是一个原子操作。 通过上面的流程图可以发现, 阅读全文
posted @ 2019-10-29 16:11 小柴胡颗粒 阅读(208) 评论(0) 推荐(0)
摘要:考虑到SimpleDateFormat为线程不安全对象,故应用ThreadLocal来解决,使SimpleDateFormat从独享变量变成单个线程变量。 ThreadLocal用于处理某个线程共享变量:对于同一个static ThreadLocal,不同线程只能从中get,set,remove自己的变量,而不会影响其他线程的变量。 get()方法是用来获取ThreadLocal在当前线程中保... 阅读全文
posted @ 2019-06-26 15:03 小柴胡颗粒 阅读(3889) 评论(1) 推荐(0)
摘要:最近看了一下公司同事写的代码,发现有些童鞋直接使用Executors去创建线程池,比如:ExecutorService executorService = Executors.newCachedThreadPool(); 阿里开发手册中明文规定禁止这样操作,为啥不能这样呢?人家也说了很清楚。 说明: 阅读全文
posted @ 2019-04-12 15:36 小柴胡颗粒 阅读(177) 评论(0) 推荐(0)
摘要:1 package com.tanlu.user.util; 2 3 import java.text.DateFormat; 4 import java.text.ParseException; 5 import java.text.SimpleDateFormat; 6 import java.util.Date; 7 8 /** 9 * 考虑到SimpleDateF... 阅读全文
posted @ 2019-04-12 13:35 小柴胡颗粒 阅读(560) 评论(0) 推荐(0)
摘要:1.创建线程的方式a.实现Runnable接口b.继承Thread类2.线程的生命周期 3.sleep()、wait() 方法的区别sleep()不会释放同步锁,睡的时间过去后线程继续执行;而wait()方法调用后会释放同步锁,等待时间过去后,需要调用notify()唤醒线程。 阅读全文
posted @ 2018-11-01 11:06 小柴胡颗粒 阅读(122) 评论(0) 推荐(0)