
线程
文章平均质量分 94
abandon9527
我毕业于东北大学软件学院软件工程专业,热心于编码,愿做一开心的小码农
展开
-
Java并发之AQS详解
一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。 以下是本文的目录大纲: 概述 框架 源码详解 简单应用 若有不正之处,请谅解和批评指正,不胜感激。原创 2021-06-19 18:03:36 · 127 阅读 · 0 评论 -
0008 Java创建线程的两个方法【基础】
Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法:◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法; ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法。 为转载 2013-12-17 14:32:55 · 569 阅读 · 0 评论 -
0009 Java 线程的生命周期【基础】
前言:在java中每new一个线程,jvm都是向操作系统请求new一个本地线程,此时操作系统会使用剩余的内存空间来为线程分配内存,而不是使用jvm的内存。这样,当操作系统的可用内存越少,则jvm可用创建的新线程也就越少。生命周期:新建-就绪-(阻塞)-运行--死亡其中当用new 创建完一个线程对象后,该线程处于新建状态。注:线程只有通过new Thread来创建,此时才会开辟线原创 2014-12-04 13:51:58 · 541 阅读 · 0 评论 -
0092 Java线程:Condition-线程通信更高效的方式【进阶】
接近一周没更新《Java线程》专栏了,主要是这周工作上比较忙,生活上也比较忙,呵呵,进入正题,上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通信。 那么引入本篇的主角,Condition,Con转载 2014-12-08 09:31:59 · 459 阅读 · 0 评论 -
0089 Java线程:Callable和Future【进阶】
接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行转载 2014-12-08 09:34:38 · 373 阅读 · 0 评论 -
0090 Java线程:Timer和TimerTask【基础】
Timer和TimerTask可以做为实现线程的第三种方式,前两中方式分别是继承自Thread类和实现Runnable接口。 Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。转载 2014-12-08 09:35:05 · 773 阅读 · 0 评论