
【java thread】
文章平均质量分 87
极客on之路
热爱技术,做有态度的技术人!
微信平台架构设计开发。支付技术,安全加密,金融证券
展开
-
JAVA多线程的控制
在Java 5.0之前启动一个任务是通过调用Thread类的start()方法来实现的,任务的提于交和执行是同时进行的,如果你想对任务的执行进行调度或是控制 同时执行的线程数量就需要额外编写代码来完成。5.0里提供了一个新的任务执行架构使你可以轻松地调度和控制任务的执行,并且可以建立一个类似数据库连接 池的线程池来执行任务。这个架构主要有三个接口和其相应的具体类组成。这三个接口是Executor, ExecutorService、ScheduledExecutorService,让我们先用一个图来显示它们的转载 2020-06-03 15:43:47 · 253 阅读 · 0 评论 -
java多线程什么时候释放锁—wait()、notify()
由于等待一个锁定线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线程在不需要锁的时候及时释放锁是很重要的。在以下情况下,持有锁的线程会释放锁: 1. 执行完同步代码块。 2. 在执行同步代码块的过程中,遇到异常而导致线程终止。 3. 在执行同步代码块的过程中,执行了锁所属对象的wait()方法,这个线程会释放锁,进行对象的等待池。 除了以上情况外,只要转载 2017-08-29 16:47:12 · 488 阅读 · 0 评论 -
Java之CountDownLatch使用
CountDownLatch1、类介绍一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重转载 2017-12-22 11:31:37 · 305 阅读 · 0 评论 -
java Thread State
原创 2019-03-21 16:24:59 · 317 阅读 · 0 评论 -
Java并发10:线程的状态Thread.State及其线程状态之间的转换
Java并发10:线程的状态Thread.State及其线程状态之间的转换原创 2019-03-21 16:41:59 · 187 阅读 · 0 评论 -
Thread.currentThread()、isAlive()、Thread.sleep()的使用
作者:琴剑山庄来源:优快云原文:https://blog.youkuaiyun.com/helongzhong/article/details/52950682版权声明:本文为博主原创文章,转载请附上博文链接!转载 2019-03-18 12:54:01 · 755 阅读 · 0 评论 -
SimpleDateFormat 格式化时间之线程安全问题
错误的示例:package extthread;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class MyThread extends Thread { private SimpleDateFormat sdf; private...原创 2019-03-22 09:48:29 · 276 阅读 · 1 评论 -
Java Runnable与Callable区别
https://www.cnblogs.com/kaituorensheng/p/9502968.html?utm_source=debugrun&utm_medium=referral转载 2019-03-29 16:15:51 · 175 阅读 · 0 评论 -
Executor,Executors及其ExecutorService:
Executor 是一个抽象层面的核心接口。Executors 是一个工具类,类似于 Collections。提供工厂方法来创建不同类型的线程池,比如 FixedThreadPool 或 CachedThreadPool。ExecutorService 接口 对 Executor 接口进行了扩展,提供了返回 Future 对象,终止,关闭线程池等方法。当调用 shutDown 方法时,线程...转载 2019-03-26 09:56:29 · 495 阅读 · 0 评论 -
ThreadPoolExecutor线程池原理
1. ThreadPoolExecutor是什么有一定开发经验的java程序员不会直接使用Thread或Runnable来创建异步任务,从而让这个任务在另一个线程中运行,而一般都是使用线程池,即ThreadPoolExecutor。线程池就是一个在内部维护很多Worker线程和一个阻塞队列的服务对象(ExecutorService),其中的线程不断从阻塞队列取任务并执行,如下图所示。...转载 2019-03-26 10:37:47 · 705 阅读 · 0 评论 -
java queue 详解
Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口。Queue的实现1、没有实现的阻塞接口的LinkedList: 实现了java.util.Queue接口和java.util.AbstractQueue接口 内置的不阻塞队列:Prior...转载 2019-03-27 10:45:02 · 2769 阅读 · 0 评论 -
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。注:什么叫线程安全?这个首先要明确。线程安全就是说多线程访问同一代...转载 2019-03-27 10:49:54 · 160 阅读 · 0 评论 -
Java多线程之this与Thread.currentThread()的区别——java多线程编程核心技术
package mythread;public class CountOperate extends Thread{ public CountOperate(){ System.out.println("CountOperate---begin"); System.out.println("Thread.currentThread().getName(转载 2017-07-26 13:35:02 · 270 阅读 · 0 评论 -
interrupt、interrupted和isInterrupted的区别
1、interrupt() interrupt方法用于中断线程。调用该方法的线程的状态为将被置为"中断"状态。注意:线程中断仅仅是置线程的中断状态位,不会停止线程。需要用户自己去监视线程的状态为并做处理。支持线程中断的方法(也就是线程中断后会抛出interruptedException的方法)就是在监视线程的中断状态,一旦线程的中断状态被置为“中断状态”,就会抛出中断异常。转载 2017-07-25 17:47:02 · 484 阅读 · 0 评论 -
Java线程面试题 Top 50
原文链接:http://www.importnew.com/12773.html 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。转载 2017-07-25 14:00:04 · 260 阅读 · 0 评论 -
Java 多线程学习笔记(三)-守护线程
package test.run;import testpackage.MyThread;public class Run { public static void main(String[] args) { try { MyThread thread = new MyThread(); thread.setDaemon(true); thread.start();原创 2016-07-03 15:36:47 · 579 阅读 · 1 评论 -
Java 多线程 学习笔记(二)停止线程的几种方法
1.异常法:package test;import exthread.MyThread;import exthread.MyThread;public class Run { public static void main(String[] args) { try { MyThread thread = new MyThread(); thread.st...原创 2016-07-03 15:36:13 · 917 阅读 · 1 评论 -
Java 多线程学习笔记(四)yield 介绍
yield()方法的作用是放弃当前的CPU资源,将它让给其他的任务去占用CPU执行时间。但放弃的时间不确定,有可能刚刚放弃,马上又获得CPU时间片。package extthread;public class MyThread extends Thread { @Override public void run() { long beginTime = System.curren原创 2016-07-03 15:37:49 · 604 阅读 · 1 评论 -
Java 多线程学习笔记(五)synchronized 锁重入
关键字synchronized 拥有锁重入的功能,也就是使用synchronized时,当一个线程得到一个对象锁后,再次请求此对象锁时是可以再次得到该对象的锁的。这也就证明在一个synchronized方法/快的内部调用本类的其他的synchronized方法/快时,是永远可以得到锁的。package extthread;import myservice.Service;pub原创 2016-07-03 15:38:09 · 917 阅读 · 1 评论 -
Java 多线程学习笔记(六)synchronized 不具有继承性
啊原创 2016-07-03 15:38:42 · 2274 阅读 · 1 评论 -
Java 多线程学习笔记(七)数据类型String的常量池特性
将synchronized(String)与String 混合使用时需要注意String的常量池特性带来的影响package extthread;import service.Service;public class ThreadA extends Thread { private Service service; public ThreadA(Service servic原创 2016-07-03 15:39:34 · 563 阅读 · 1 评论 -
Java 多线程学习笔记(八) volatile关键字
原创 2016-07-04 10:34:15 · 480 阅读 · 1 评论 -
Java 多线程学习笔记(九) join
1.join(long) 和sleep(long)的区别前者具有释放锁的特点。或者不具有释放锁的特点参考:https://www.cnblogs.com/huangzejun/p/7908898.html原创 2016-07-04 11:22:52 · 550 阅读 · 2 评论 -
Java 多线程学习笔记(十) InheritableThreadLocal的使用
废话少说,上代码package extthread;import tools.Tools;public class ThreadA extends Thread { @Override public void run() { try { for (int i = 0; i < 10; i++) { System.out.println("在ThreadA线程中取值=原创 2016-07-04 11:44:47 · 1060 阅读 · 2 评论 -
Java 多线程学习笔记(十一) 单例设计模式(延迟加载/懒汉模式)DCL解决线程安全问题
package extthread;import test.MyObject;public class MyThread extends Thread { @Override public void run() { System.out.println(MyObject.getInstance().hashCode()); }}线程安全:饿汉式天生就是线程安全的...原创 2016-07-04 14:04:00 · 1152 阅读 · 2 评论 -
Tomcat的最大并发数
Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的。更好的硬件,更多的处理器都会使Tomcat支持更多的并发。 Tomcat默认的HTTP实现是采用阻塞式的Socket通信,每个请求都需要创建一个线程处理,当一个进程有500个线程在跑的话,那性能已经是很低很低了。Tomcat 默认配置的最大请求数是150,也就是说同时支持150个并发。具体能转载 2016-11-15 18:14:48 · 3101 阅读 · 0 评论 -
Java 多线程学习笔记 (一)interrupt
啊啊啊原创 2016-07-03 15:33:58 · 618 阅读 · 1 评论