Java网络编程
网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。java.net包中J2SE的API包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。
汤高
喜欢开源的框架技术、乐于研究其底层源码,把个人从学习到工作中用到的所有技术梳理总结,也分享给所有爱学习新技术的朋友们,相互交流,一起进步
展开
-
线程池
线程池的作用: 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池中有等待的工作线程,就可以开始运行原创 2015-11-11 19:19:50 · 750 阅读 · 3 评论 -
生产者和消费者
用到 wait()、notify()/notifyAll()方法 public class Test15 { /** * @param args */ public static void main(String[] args) { AppleBox ab=new AppleBox(); Producer p=new Produc原创 2015-11-04 21:29:49 · 767 阅读 · 2 评论 -
死锁
什么是死锁: 是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁死锁产生的四个条件 (1) 互斥条件:一个资源每次只能被一个进程使用。 (2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 (3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺原创 2015-11-04 21:28:01 · 922 阅读 · 11 评论 -
多线程带来的数据不一致
解决:两种方法 1同步快import java.util.Random; public class Test13 { /** * @param args * 多线程带来的数据不一致 * 解决办法 同步机制 1 同步块 2 同步方法(不推荐) */ public static void main(String[] args) {原创 2015-11-04 21:26:12 · 1773 阅读 · 2 评论 -
线程的其他特征
睡眠: //使用sleep控制线程运行 public class Test9 { /** * @param args */ public static void main(String[] args) { new Thread(new MyTask()).start(); new Thread(new MyTask2()).start原创 2015-11-04 21:23:33 · 676 阅读 · 1 评论 -
线程的分类
1.主线程 main方法。2.精灵线程 特点: (1)设置为精灵线程的方法:setDaemon(true); (2)其他线程结束了 精灵线程也完了 (3)又叫守护线程或者后台线程import java.io.File; import java.io.IOException; import java.net.URL; import java.util.Date; public class T原创 2015-11-04 21:21:01 · 1511 阅读 · 0 评论 -
线程的创建
创建一个Java线程常见的有两种方式:1.继承Thread类 两种表示方法: (1).外部类import java.util.Date; public class Test1 { public static void main(String[] args) { //启动新线程 来完成输出时间的操作 Mytime mt=new Mytime(原创 2015-11-04 21:14:57 · 549 阅读 · 0 评论 -
程序、进程、线程的关系
1.程序: 一段静态的代码,一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体,是应用软件执行的蓝本。2.进程: 是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体,它有自己的生命周期。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消。反映了一个程序在一定的数据 集上运行的全部动态过程。通原创 2015-11-04 21:05:15 · 764 阅读 · 0 评论 -
TCP连接的建立(三次握手)和释放(四次挥手)
所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。 三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。 第一次握手: 客户端发送一个TCP的SYN标志位置1的原创 2015-11-15 17:01:39 · 1284 阅读 · 0 评论 -
初识HtmlParser
1、相关资料 官方文档:http://htmlparser.sourceforge.net/samples.html API:http://htmlparser.sourceforge.net/javadoc/index.html 其它HTML 解释器:jsoup等。由于HtmlParser自2006年以后就再没更新,目前很多人推荐使用jsoup代替它。 2、使原创 2015-11-23 22:04:13 · 1400 阅读 · 0 评论 -
多人聊天室
最近学完网络线程协议 ,因此写了一个用java编写的聊天室 话不多说 效果如图 首先 创建服务器端原创 2016-02-13 12:19:52 · 1591 阅读 · 2 评论