线程 概念:线程是CPU调度的最小单位,在一个进程中至少会有一条由虚拟机发起的线程,成为主线程。 线程有着生命周期,包括以下部分: (1)创建线程对象 (2)线程启动 开始 start (3)CPU的调度:a.运行 running b.阻塞 blocked (4)run方法结束 死亡 dead 对于 ...
分类:
编程语言 时间:
2020-06-07 23:00:41
阅读次数:
115
CountDownLatch 是一种同步辅助工具, 它允许一个或多个线程等待 直到其它线程的一组操作完成。JDK 1.5加入 。 给定count可以获取CountDownLatch对象。类似于一种记数器,通过getCount()可获知还有多少线程没有执行完成。调用await()方法表示进入阻塞,直到 ...
分类:
其他好文 时间:
2020-06-07 21:15:50
阅读次数:
78
阻塞式方法是指程序会一直等待该方法完成期间不做其他事情,ServerSocket 的 accept()方法就是一直等待客户端连接。这里的阻塞是指调用结果返回之前,当前 线程会被挂起,直到得到结果之后才会返回。此外,还有异步和非阻塞式方法在 任务完成前就返回。 ...
分类:
其他好文 时间:
2020-06-07 16:31:31
阅读次数:
70
一、线程池的作用 线程池类似于数据库链接池、Redis链接池等池化技术。池化技术的优点如下: 1. 统一管理资源,线程是操作系统一个重要监控管理指标,过多的线程会导致占用内存、上下文切换频繁等问题,所以需要管理起来线程,而每处都用new Thread()方法来创建线程,那线程资源散落在应用程序各地, ...
分类:
编程语言 时间:
2020-06-07 15:16:32
阅读次数:
67
对NIO的理解 个人单方面认为,NIO与BIO的最大区别在于主动和被动,使用BIO的方式需要等待被调用方返回数据,很明显此时调用者是被动的。 举个例子 阻塞IO 假设你是一个胆小又害羞的男孩子,你约了隔壁测试的妹子,但你并不敢主动约会,所以你把自己的手机号码给她,并暗示她想要约会的时候打电话给你。很 ...
分类:
其他好文 时间:
2020-06-07 14:34:06
阅读次数:
68
进程/线程的区别: 进程是资源分配的最小单位,线程是CPU调度的最小单位 死锁的四个必要条件 (1) 互斥条件:一个资源每次只能被一个进程使用。 (2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 (3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。 (4) ...
分类:
其他好文 时间:
2020-06-07 11:18:59
阅读次数:
88
Js文件异步加载 浏览器中渲染引擎与Js脚本引擎是互斥的,在浏览器开始渲染页面时,如果遇到<script>标签,会停止渲染当前页面,也就是说在脚本加载与执行的过程中会阻塞页面的渲染,在网速较差的环境下可能会出现浏览器页面假死的情况,这也就是尽量将<script>文件放置于<body>后的原因,Js文 ...
分类:
Web程序 时间:
2020-06-07 10:45:33
阅读次数:
75
OIO和NIO写法大相径庭,但netty的阻塞和非阻塞的代码基本一致, public class NettyOioServer { public void server(int port) throws Exception { final ByteBuf buf = Unpooled.unrelea ...
分类:
其他好文 时间:
2020-06-07 09:19:50
阅读次数:
67
前言 Java 线程通信是将多个独立的线程个体进行关联处理,使得线程与线程之间能进行相互通信。比如线程 A 修改了对象的值,然后通知给线程 B,使线程 B 能够知道线程 A 修改的值,这就是线程通信。 wait/notify 机制 一个线程调用 Object 的 wait() 方法,使其线程被阻塞; ...
分类:
编程语言 时间:
2020-06-07 01:00:59
阅读次数:
75
一 基本概念 IO(BIO)和NIO的区别:其本质就是阻塞和非阻塞的区别。 阻塞:应用程序在获取网络数据的时候,如果网络传输数据很慢,那程序就一直等着,直到传输完毕为止。 非阻塞:应用程序直接可以获取已经准备就绪的数据,无需等待。 IO为同步阻塞形式,NIO为同步非阻塞,到JDK1.7,NIO为异步 ...
分类:
编程语言 时间:
2020-06-06 12:51:26
阅读次数:
81