概述 ThreadLocal提供了一种线程安全的数据访问方式,每个线程中都存在一个共享变量副本,从而实现多线程状态下的线程安全。 demo public static void main(String[] args) { final ThreadLocal<Integer> MAIN = Threa ...
分类:
其他好文 时间:
2020-07-19 23:56:13
阅读次数:
81
package example.java; /** * @author 杜科 * @description 简单动态字符串,非线程安全。采取类似buffer的设计,使其成为一个可以方便重用的StringBuilder * @contact AllenDuke@163.com * @date 2020 ...
分类:
其他好文 时间:
2020-07-19 23:18:33
阅读次数:
92
一个线程执行多个任务,要按照顺序执行,怎么去实现? 分析: 多个人任务-->线程 要按照顺序执行--》就需要排队,那就是队列 一个给任务,一个执行任务--》涉及一个生产一个消费 过渡:需要容器装任务来存储任务 有两个线程,一放一取不是原子操作,所以涉及线程安全问题 代码实现: import java ...
分类:
编程语言 时间:
2020-07-19 15:59:06
阅读次数:
99
/*Linux环境编程:从应用到内核*/ /* 0.4.3 线程安全 线程安全,顾名思义是指代码可以在多线程环境下“安全”地执行。何为安全?即符合正确的逻辑结果,是程序员 期望的正常执行结果。为了实现线程安全,该代码要么只能使用局部变量或资源,要么就是利用锁等同步机制,来 实现全局变量或资源的串行访 ...
分类:
编程语言 时间:
2020-07-18 19:58:19
阅读次数:
78
目录 指令重排序 指令重排序 java编程语言的语义允许编译器和微处理器执行优化 //重排序后的代码出现死循环 public class VisibilityDemo { private boolean flag = true; public static void main(String[] ar ...
分类:
编程语言 时间:
2020-07-18 15:58:57
阅读次数:
69
线程安全与不安全集合 线程不安全集合: ArrayList LinkedList HashMap HashSet TreeMap TreeSet StringBulider 线程安全集合: Vector HashTable Properties 集合线程安全与解决方案 ArrayList线程安全问题 ...
分类:
编程语言 时间:
2020-07-17 22:03:41
阅读次数:
77
一、Collections工具类 Collections 工具类常用方法: 排序 查找,替换 同步控制(不推荐,需要线程安全的集合类型时请考虑使用 JUC 包下的并发集合) 1. 排序 void reverse(List list)//反转 void shuffle(List list)//随机排序 ...
分类:
其他好文 时间:
2020-07-17 09:24:50
阅读次数:
78
设计模式之单例模式 Intro 一个类只允许创建唯一一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。 单例模式可能是大家听说最多的设计模式了,网上介绍最多的设计模式大概就是单例模式了,我看过的设计模式相关的文章很多都是写一篇介绍单例模式,然后就没有了。 经 ...
分类:
其他好文 时间:
2020-07-15 10:47:32
阅读次数:
90
序言:在写单例模式之前,我知道网上有一堆博客已经写过单例模式了,之所以再写,只是单纯想做一个记录,个人认为单例模式是最为基础且最简单的设计模式之一,不然面试怎么逢人就问,但是单例模式,据我所了解能用的应该有4种常规写法(非线程安全的可以理解为没办法在真实生产环境运用)。 简介 单例模式是创建型设计模 ...
分类:
其他好文 时间:
2020-07-15 01:04:17
阅读次数:
67
顾名思义,单例模式就是要求只有一个实体对象。 单例模式分为懒汉式和饿汉式 饿汉式:一开始就创建对象,线程安全,但是如果用不到这个对象,会造成浪费 懒汉式:要的时候才创建,不会造成浪费,但是会有线程安全的问题. 饿汉式和懒汉式都是私有化构造函数,不让外面能够直接new 对象. 饿汉式 private ...
分类:
其他好文 时间:
2020-07-14 20:08:22
阅读次数:
62