线程
Elementer
潜力股一枚
展开
-
Socket网络编程:基于TCP多线程通信
第一步:编写启动服务端的线程类 package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.P原创 2016-10-25 15:43:48 · 2031 阅读 · 0 评论 -
NIO的工作方式(一)
BIO即阻塞I/O,不管是磁盘IO还是网络IO,数据在写入OutputStream或者从InputStream读取时都有可能会阻塞,一旦有阻塞,线程将会失去CPU的使用权,这在当前的大规模访问量和有性能要求的情况下是不能呗接受的。虽然当前的网络IO有一些解决办法,如一个客户对应一个处理线程,出现阻塞是只是一个线程阻塞而不会影响其他线程工作,还有为了减少系统线程的开销,采用线程池的棒法来减少线程的创原创 2016-11-03 23:56:20 · 431 阅读 · 0 评论 -
多线程问题,三个线程轮流进行,每个线程进行n次操作,共执行n*n*3次操作。本代码用三军攻击做演示,通俗易懂。
package com.yyj.zxy; public class SanJunFight { /** * 三只部队轮流上战场,每只部队在战场上每一轮只能进行10次攻击; * 合计攻击300次则停止攻击; */ private static int count = 1; //攻击计数器 private static int part = 1; //默认第一支部队先进行第一原创 2016-09-30 15:24:53 · 2041 阅读 · 0 评论 -
采用JDK并发包提供的Lock, Condition等类的相关方法控制多线程.
和饮用的文章相比,发现使用并发包后,攻击次数只有280下,而引用代码是300次,可以看出JDK并发包效率更高原创 2016-09-30 16:03:41 · 412 阅读 · 0 评论 -
Thread中start()和run()的区别
start():用来启动一个新线程;新线程会执行run方法,start()不能被重复调用,它是并发执行的;run():只是一个普通方法而已,在调用的线程中按顺序执行而已;...原创 2018-04-09 14:13:12 · 211 阅读 · 0 评论