多线程
crsfyc
这个作者很懒,什么都没留下…
展开
-
线程池其他相关内容
一、提交任务到线程池中向线程池中提交任务有两种方式:调用execute()和submit()方法execute()方法:用于提交不需要有返回值的任务,这类任务无法判断任务是否被线程池执行成功。调用示例代码如下:(参数为一个Runnable类的实例)executor.execute(new Runnable(){ @Override public voi...原创 2019-11-08 10:32:12 · 124 阅读 · 0 评论 -
线程池参数详解
创建线程池是需要指定如下几个参数,如:public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, ...原创 2019-11-08 10:13:09 · 902 阅读 · 1 评论 -
常见线程池种类
1、概述:线程池类型用途说明适用场景Executors.newFixedThreadPool创建固定线程数的线程池,使用的是LinkedBlockingQueue无界队列,线程池中实际线程数永远不会变化适用于可以预测线程数量的业务中,或者服务器负载较重,对线程数有严格限制的场景Executors.newSingleThreadExecutor创建只有一个线程的线...原创 2019-11-08 09:43:25 · 2607 阅读 · 0 评论 -
线程锁的使用
普通锁(Lock)package org.xyz.java.thread.demo07;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * Lock 普通的锁是对 读-读操作、读-写操作、写-写操作都是互斥的,无论多个线程是读操作还是写操作,每次都只能...原创 2018-12-25 11:54:25 · 496 阅读 · 0 评论 -
线程范围内的数据共享
线程范围内的数据共享(ThreadLocal应用)自定义实现package org.xyz.java.thread.v5.threadlocal;import java.util.HashMap;import java.util.Map;import java.util.Random;/** * 自定义模拟来实现线程范围内数据共享 * @author kevin.chen *...原创 2018-12-25 11:47:47 · 196 阅读 · 0 评论 -
线程间的通讯
线程通讯需要使用到的三个方法: wait()、notify()与notifyAll()。该三个方法不在Thread类中定义,而是在Object类中>> wait() 方法:让当前线程挂起并放弃cpu使用权,同步资源,使别的线程可以访问并修改同步资源,而当前线程排队等待,直到被唤醒后才能再次获取cpu使用权和同步资源的访问。>> notify()方法:唤醒正在排队等待...原创 2018-12-25 11:33:30 · 111 阅读 · 0 评论 -
线程的同步机制
线程的同步机制主要是同java中的synchronized关键字[类锁方式]的实现关于synchronized关键字的讲解可以参考 synchronized 关键字解析这里主要是通过售票案例来讲解下线程的同步机制:使用继承Thread类的方式:package org.xyz.java.thread.demo03;/** * 使用继承Thread的方式来实现多个窗口同时售票...原创 2018-12-25 11:21:16 · 146 阅读 · 0 评论 -
线程Thread类中的常用方法讲解
1、start() 方法:使一个线程启动,并执行该线程对应的run()方法说明:> 线程只能启动一次,一旦线程启动了,再次启动会抛出java.lang.IllegalThreadStateException异常package org.xyz.java.thread.demo02;/** * 线程的start方法讲解 * @author kevin.chen * */...原创 2018-12-25 11:04:55 · 657 阅读 · 0 评论 -
线程的生命周期(线程间的状态转换)
线程的状态分为如下几种:jdk的源代码介绍: java.lang.Thread.Statepublic enum State { // 新建状态 - 尚未启动的线程处于这种状态。 NEW, // 可运行状态 - 可运行的线程状态,该线程已经可以在java虚拟机执行,其可能在等待其他资源,如操作系统的中央处理器等。 RUNNABLE, ...原创 2018-12-25 10:18:51 · 678 阅读 · 0 评论 -
创建线程的方式及区别
创建线程的方式有三种: > 1、继承Thread类 > 2、实现Runnable接口 > 3、实现Callable接口(该方式主要运用在并发编程异步调用中) > 4、使用线程池的方式创建线程(一般不作为常规的创建线程的方式)各种方式详细代码示例如下:第一种,继承 java.lang.Thread 类的方式:package org....原创 2018-12-25 09:47:53 · 237 阅读 · 0 评论 -
多线程相关的一些概念介绍
一、程序、进程、线程的关系程序:一个可以运行的代码,程序是静态的。进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程中可以包含多个线程。(进程是资源分配的最小单位)线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)二、并行、并发并行(parallellism):多个线程同时...原创 2018-12-25 09:37:12 · 133 阅读 · 0 评论