前言 我们知道volatile关键字的作用是保证变量在多线程之间的可见性,它是java.util.concurrent包的核心,没有volatile就没有这么多的并发类给我们使用。 本文详细解读一下volatile关键字如何保证变量在多线程之间的可见性,在此之前,有必要讲解一下CPU缓存的相关知识, ...
分类:
其他好文 时间:
2020-04-14 00:42:53
阅读次数:
74
1 from socket import * 2 from threading import Thread 3 udp_socket = socket(AF_INET,SOCK_DGRAM) 4 #绑定端口 5 udp_socket.bind(('',8989)) 6 7 #不停接收 8 def r ...
分类:
编程语言 时间:
2020-04-13 22:34:00
阅读次数:
74
饿汉式,使用static final修饰,类初始化的时候创建对象,之后操作的都是听一个对象,因此不存在线程安全问题 public class Person { //饿汉式(多线程也是单例) public static final Person PERSON = new Person(); priva ...
分类:
其他好文 时间:
2020-04-13 11:58:46
阅读次数:
69
多线程1.并行和并发有什么区别?并行:多个任务在同一个CPU核上,按细分的时间片轮流(交替)执行,从逻辑上来看那些任务是同时执行。并发:多个处理器或多核处理器同时处理多个任务。如下图:并发和并行并发=两个队列和一台咖啡机。并行=两个队列和两台咖啡机。2.线程和进程的区别?一个程序下至少有一个进程,一个进程下至少有一个线程,一个进程下也可以有多个线程来增加程序的执行速度。3.守护线程是什么?守护线程
分类:
编程语言 时间:
2020-04-13 01:15:58
阅读次数:
274
?123456789101112131415161718192021222324252627282930313233343536373839404142434445import java.util.concurrent.Callable;import java.util.concurrent.Exe ...
分类:
编程语言 时间:
2020-04-13 00:44:54
阅读次数:
82
ByteBuf直接与底层IO打交道 1、内存类别有哪些 2、如何减少多线程内存分配竞争 3、不同大小内存是如何分配的 内存与内存管理器的抽象 不同规格大小和不同内存类别的分配策略 内存回收 ByteBuf结构 readerIndex,表示要读数据从当前指针开始读,从0到readerIndex这段空间 ...
分类:
Web程序 时间:
2020-04-12 22:46:12
阅读次数:
93
一、Threading.local 通过Threading.local实现本地存储隔离;当我们开启多线程来执行func函数,通过自定义的Foo类来存储数据时,我们发现最终的输出结果是全部的线程打印的都是一个最终的数字10,这是因为这样存储的数据线程之间是共享的,当最后一个线程执行func函数时,由于 ...
分类:
其他好文 时间:
2020-04-12 16:39:01
阅读次数:
63
private Handler vp_mHandler = new Handler(); new Thread(new Runnable() { @Override public void run() { //执行的代码 LogUtil.e("Thread_____response>> " ); v ...
分类:
移动开发 时间:
2020-04-12 14:56:32
阅读次数:
185
Jedis和Lettuce Springboot2.x之后连接Redis默认使用的是Lettuce,2.x之前默认使用的是Jedis。 Jedis Jedis在实现上是直接连接的Redis Server,如果在多线程环境下是非线程安全的。每个线程都去拿自己的 Jedis 实例,当连接数量增多时,资源 ...
分类:
编程语言 时间:
2020-04-12 14:43:38
阅读次数:
66
更新记录 时间 | 版本修改 | | | 2020年4月12日| 初稿 | 前言 目前看到,网上搜索到的Blocks的博客大致都是参考《Objective C 高级编程 iOS与OS X多线程和内存管理》这本经典书籍的。 本文也类似,会尽可能加入自己的总结和思考。 Blocks的实质 Objecti ...
分类:
其他好文 时间:
2020-04-12 14:30:42
阅读次数:
70