class Res { private String name; private int count = 1; private boolean flag; public synchronized void set(String name) { while (flag) { try { this.wa ...
分类:
编程语言 时间:
2020-03-31 23:09:15
阅读次数:
79
多线程 线程就是独立的执行路径; 在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程; . main()称之为主线程,为系统的入口,用于执行整个程序; 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能认为的干预的。 对 ...
分类:
编程语言 时间:
2020-03-31 23:00:49
阅读次数:
84
在Java多线程中,可以使用synchronized关键字实现线程之间的同步互斥,在jdk1.5后新增的ReentrantLock类同样可达到此效果,且在使用上比synchronized更加灵活。观察ReentrantLock类可以发现其实现了Lock接口public class Reentrant ...
分类:
其他好文 时间:
2020-03-31 21:15:26
阅读次数:
99
容器架构 Hashtable HashMap SynchronizedHashMap CurrentHashMap CurrentSkipListMap(弥补同步的TreeMap) Hashtable所以方法默认加sychronized, HashMap默认没有加锁, 而SynchronizedHa ...
分类:
编程语言 时间:
2020-03-31 20:55:14
阅读次数:
83
CreateThread创建线程,成功返回线程句柄,失败返回NULL HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, //指向SECURITY_ATTRIBUTESX形态的结构指针。NULL为使用默认安全性 DWORD d ...
分类:
编程语言 时间:
2020-03-31 19:19:22
阅读次数:
56
重量级锁?自旋锁?自适应自旋锁?轻量级锁?偏向锁?悲观锁?乐观锁?执行一个方法太难了,到处都是锁。 重量级锁 如果你学过多线程,那么你肯定知道锁这个东西,至于为什么需要锁,我就不给你普及了,就当做你是已经懂的了。 我们知道,我们要进入一个同步、线程安全的方法时,是需要先获得这个方法的锁的,退出这个方 ...
分类:
其他好文 时间:
2020-03-31 14:05:07
阅读次数:
72
8.2、线程同步的目的 线程同步的目的就是不管线程之间的执行如何穿插,其运行结果都是正确的。或者说,要保证多线程执行下结果的确定性。而在达到这个目标的同时,要保持对线程执行的限制越少越好。 除此之外,线程同步的另一个目的涉及执行效率。除了前面说过的多线程执行的结果是不确定的之外,某执行效率也是不确定 ...
分类:
编程语言 时间:
2020-03-31 12:30:29
阅读次数:
96
1.进程是资源分配单位, 线程是CPU调度单位 2.进程拥有一个完整的资源平台, 而线程只独享指令流执行的必要资源,如registers和stack 3.线程具有 就绪, 阻塞, 运行 三种基本状态和状态间的转换关系 4. 线程能减少并发执行的时间空间开销 多线程的引入: 在进程内部增加一类实体满足 ...
分类:
编程语言 时间:
2020-03-31 12:19:31
阅读次数:
73
import socket ''' 用来验证协程的实现原理,除了多进程是直接进行多个任务进行,多线程和多线程的本质都是运用阻塞时间处理其他数据 进程是并行的,真正的同时运行;线程和协程是并发的,是运用间隔时间轮流调用 ''' tcp_socket = socket.socket(socket.AF_ ...
分类:
编程语言 时间:
2020-03-31 01:27:36
阅读次数:
76
import socket import threading def tcp_serve(resp_socket): recv_data = resp_socket.recv(1024) print(recv_data) resp_data = 'HTTP/1.1 200 OK\r\n' + "\r ...
分类:
编程语言 时间:
2020-03-31 01:12:06
阅读次数:
86