并发编程
文章平均质量分 77
LinkinPark8林肯
博客迁移,请移步jiangweili.me
展开
-
Java多线程之线程的控制
Java多线程之线程的控制线程中的7 种非常重要的状态: 初始New、可运行Runnable、运行Running、阻塞Blocked、锁池lock_pool、等待队列wait_pool、结束Dead如果将“锁池”和“等待队列”都看成是“阻塞”状态的特殊情况,那么可以将线程归纳为5个状态:新建,就绪,运行,阻塞,死亡。原创 2015-02-04 11:23:09 · 860 阅读 · 0 评论 -
Java多线程之线程的创建
好久没有更博客了,最近一直在忙工作的事情。现在终于空下来了,这2天会抓紧时间整理多线程和socket,把JavaSE结束掉。关于多线程,首先会涉及到哪些东西呢?首先要了解线程,为什么要使用线程,线程有什么优势,线程和进程有什么区别呢?了解过大致的线程内容后,就应该编码来实现Java的多线程了。首先2种方式来创建线程类,然后调用对应的API来控制线程。然后还剩下一个最大的也是最重要的一块原创 2015-02-03 16:31:48 · 889 阅读 · 0 评论 -
Java多线程之线程的同步
Java多线程之线程的同步实际开发中我们也经常提到说线程安全问题,那么什么是线程安全问题呢?线程不安全就是说在多线程编程中出现了错误情况,由于系统的线程调度具有一定的随机性,当使用多个线程来访问同一个数据时,非常容易出现线程安全问题。具体原因如下: 1,多个线程同时访问一个数据资源(该资源称为临界资源),形成数据发生不一致和不完整。 2,数据的不一致往往是因为一个线原创 2015-02-04 15:05:54 · 779 阅读 · 0 评论 -
Java多线程之线程的通信
Java多线程之线程的通信在总结多线程通信前先介绍一个概念:锁池。线程因为未拿到锁标记而发生的阻塞不同于前面五个基本状态中的阻塞,称为锁池。每个对象都有自己的锁池的空间,用于放置等待运行的线程。这些线程中哪个线程拿到锁标记由系统决定。前面我们也有T到死锁的概念,线程互相等待其他线程释放锁标记,而又不释放自己的;造成无休止地等待。当出现死锁的时候,我们应该如何解决呢?通过线程间的通信解决。原创 2015-02-05 11:08:43 · 152 阅读 · 0 评论 -
Java多线程之线程其他类
Java多线程之线程其他类实际编码中除了前面讲到的常用的类之外,还有几个其他类也有可能用得到,这里来统一整理一下:1,Callable接口和Future接口JDK1.5以后提供了上面这2个接口,可以把Callable接口看成Runnable接口的增强版,Callable接口提供call方法作为线程执行体,但是call方法比run方法强大,call方法可以有返回值,call方法可以声原创 2015-02-05 15:08:07 · 66 阅读 · 0 评论 -
Java多线程之线程池
Java多线程之线程池首先强调一点,池是一种设计模式,也就是说好多的成本比较高的连接了这些为了提供性能,用一个池来做缓存。比如说字符串池,比如说数据库连接池,这里介绍下线程池。系统启动一个线程的成本还是比较高的,因为它涉及和操作系统交互。具体的设计思路和数据库连接池差不多:线程池在系统启动时创建大量空闲的线程,程序将一个Runnable对象传给线程池,线程池会启动一原创 2015-02-05 15:33:39 · 616 阅读 · 0 评论 -
网络编程之UDP编程
网络编程之UDP编程UDP协议是一种不可靠的网络协议,它在通信的2端各建立一个Socket,但是这个Socket之间并没有虚拟链路,这2个Socket只是发送和接受数据的对象,Java提供了DatagramSocket对象作为基于UDP协议的Socket,使用DatagramPacket代表DatagramSocket发送和接受数据报。值得注意的是:UDP编程必须先由客户端发出信息。一个客户端原创 2015-02-11 16:59:28 · 709 阅读 · 0 评论 -
网络编程之常用类介绍
网络编程和多线程一样,网络编程在实际编码中并不会太多的写到,但是这块东西还是比较重要的。就在前几天去一家大公司面试,至于公司的名字我就不说了(我已经通过了但是我最后选择了别家),就问到了好多的关于socket的东西,好像tomcat里面也用到了socket,所以这里做一次整理。这也是JavaSe中最后一块,整理完socket以后开始整理数据库和JDBC。几个比较重要的网络术原创 2015-02-11 15:14:15 · 798 阅读 · 0 评论 -
网络编程之TCP编程
网络编程之TCP编程前面已经介绍过关于TCP协议的东西,这里不做赘述。Java对于基于TCP协议的网络通信提供了良好的封装,Java使用socket对象来代表两端的通信窗口,并通过Socket产生IO流来进行网络通信。说白了,玩基于Socket的网络编程无非就是使用ServerSocket创建一个服务器,然后使用socket进行通信,如果复杂一点呢,在加入多线程操作,用NIO代替IO来实现非阻原创 2015-02-11 16:03:29 · 158 阅读 · 0 评论