java网络编程
si_ma_tong_ming
谁把谁的明媚尽收眼底,
谁把谁的难过感同身受。。。
展开
-
非阻塞通信(服务器端)
一.非阻塞 1.非阻塞:线程执行方法时,如果操作没有就绪,就立即返回,不会一直等待操作就绪2.java.nio提供非阻塞通信的类: 1)ServerSocketChannel:代替Server 2)SocketChannel:代替Socket 3)Selector:监控就绪事件 4)SelectionKey:注册事件的句柄3.服务器端程序使用多线程处理阻塞IO,虽然可以响应多用户,但是存在原创 2017-08-08 21:10:10 · 1010 阅读 · 0 评论 -
线程同步示例
描述:父亲和儿子共享一个盘子,父亲放苹果,儿子吃苹果,盘子里面只能放一个,父亲放苹果的时候,儿子不能吃,儿子取的时候,父亲不能放,盘子只放一个苹果,完成两个线程的同步问题 注:synchronized修饰的非静态方法是对象锁,静态方法是类锁//盘子class Dish{ int apple =0; public synchronized void add() throws Exc原创 2017-08-04 14:49:29 · 310 阅读 · 0 评论 -
互斥共享
描述:模拟两个售票员同时售票的情况,对电子票箱需要互斥共享。//售票点(共享数据)class Clerk{ int ticket = 10; public synchronized void book(int tk){ if(ticket>=tk) { System.out.println("book:" + tk); t原创 2017-08-04 15:09:50 · 2154 阅读 · 0 评论 -
实现线程池
1.线程池优点: 1).减少创建和销毁线程的次数 2).可以根据系统的能力,调整线程池中线程的数目 3).减少切换线程的开销2.实现自定义线程池 思路: 1)将线程池线程定义为守护线程(这样可以保证在线程池中的线程结束后自动退出,同时监视线程池) 2)创建一个工作队列保存线程(Runnable) 3)执行线程的类 4)定原创 2017-08-06 22:12:59 · 238 阅读 · 0 评论