2017年3月20日
摘要: 8、缓冲队列 缓冲队列接口BlockingQueue,继承了Queue接口。 实现类:LinkedBlockingDeque ArrayBlockingQueue PriorityBlockingQueue LinkedBlockingDeque大小不定的BlockingQueue若其构造函数带一个 阅读全文
posted @ 2017-03-20 17:15 芹derella 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 所有商用服务器都要用线程池 前言 线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理的使用线程池可以对线程进行统一的分配、调优和监控,并有以下好处:1、降低资源消耗;2、提高响应速度;3、提高线程的可管理性。 Java1.5引入的Executor框架把任务的提交和执行进 阅读全文
posted @ 2017-03-20 16:47 芹derella 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 线程同步与异步 线程同步如同一群人上公交车,排着队的一个上完后接着下一个。 线程异步如同一群人上公交车,不排队,谁抢到谁上去,各上各的。 线程安全 多个线程并发读写一个临界资源时候会发生”线程并发安全问题”。常见的临界资源有:多线程共享实例变量、静态公共变量。 比如一个 ArrayList 类,在添 阅读全文
posted @ 2017-03-20 14:35 芹derella 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 线程同步 什么是线程同步 线程之间执行是有先后顺序的,一个线程要等待上一个线程执行完之后才开始执行当前的线程。 为什么要线程同步 java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,所以需要线程同步执行,保证了该变量的唯一 阅读全文
posted @ 2017-03-20 14:32 芹derella 阅读(639) 评论(0) 推荐(0) 编辑
摘要: String getName() 返回该线程的名称。 void setName(String name) 改变线程名称,使之与参数 name 相同。 int getPriority() 返回线程的优先级。 void setPriority(int newPriority) 更改线程的优先级。 boo 阅读全文
posted @ 2017-03-20 13:58 芹derella 阅读(39555) 评论(0) 推荐(3) 编辑
摘要: 生命周期的五种状态,新建、就绪、运行、堵塞、死亡。 新建(new Thread) 当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动)。例如:Thread t1=new Thread(); 就绪(runnable) 调用Thread类的start方法,线程已经被启动,进入就绪状态 阅读全文
posted @ 2017-03-20 13:58 芹derella 阅读(571) 评论(0) 推荐(0) 编辑
摘要: 第一种:Thread类 Thread类代表线程类型。任何线程对象都是Thread类(子类)的实例。Thread类是线程的模板(封装了复杂的线程开启等操作,封装了操作系统的差异性),只要重写run方法即可实现具体线程。 Thread类创建线程 创建一个具体线程,需要继承于Thread类,覆盖run方法 阅读全文
posted @ 2017-03-20 13:53 芹derella 阅读(233) 评论(0) 推荐(0) 编辑
摘要: java语言的优势之一就是多线程处理较为简单。 程序 指令+数据的byte序列,如:qq.exe 进程 对于操作系统而言,同时运行的每一个任务就是一个应用程序。对于操作系统级别同时运行的任务,成为进程。比如:qq.exe,eclipse,IE等。正在运行的程序,是程序动态的执行 线程 对于一个进程而 阅读全文
posted @ 2017-03-20 13:38 芹derella 阅读(230) 评论(0) 推荐(0) 编辑