随笔分类 - 多线程
摘要:1、BIO(Blocking IO): BIO (Blocking I/O) 是同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。 采用 BIO 通信模型 的服务端,通常由一个独立的Server(主线程)负责监听客户端的连接。一般是在 while(true) 循环中,服务端调用 ac
阅读全文
摘要:先上一段代码 本以为运行结果如下: 结果却出现了多种情况,如下: 或者 后翻阅资料得知: Java线程中的Thread.yield( )方法,译为线程让步。顾名思义,就是说当一个线程使用了这个方法之后,它就会把自己CPU执行的时间让掉, 让自己或者其它的线程运行,注意是让自己或者其他线程运行,并不是
阅读全文
摘要:在解决高并发问题时,如果是分布式系统显然我们只能够使用数据库端加锁机制来解决这个问题,但是这种同步机制或者数据库物理锁机制会牺牲一部分的性能,所以常常以另外一种方式来解决这个问题 就是乐观锁模式 银行两操作员同时操作同一账户就是典型的乐观锁模式。 比如A、B操作员同时读取一余额为1000元的账户,A
阅读全文
摘要:ThreadLocal是什么 ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。 从数据结构入手 下图为ThreadLocal的内
阅读全文
摘要:先看收集了别人的文章,全面的了解下java的中断: 中断线程 线程的thread.interrupt()方法是中断线程,将会设置该线程的中断状态位,即设置为true,中断的结果线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于这个程序本身。线程会不时地检测这个中断标示位,以判断线程是否应该被
阅读全文