多线程学习笔记
1、监控线程
private int childThreadNum = 0; //子线程数量
private int childThreadLimit = 30; //子线程最大并发数量
private int pauseTime = 60000; //线程暂停时间,单位毫秒
private boolean threadFlag = true; //线程控制开关,如果调用threadClose则线程关闭
public void run()
{
//线程控制开关
while (threadFlag)
{
//达到子线程限制数量
while (childThreadNum == childThreadLimit)
{
//则休眠,不发起新线程
this.threadSleep(pauseTime);
}
//否则发起新线程
TestThread testThread = new Thread(TestThread ).start();
//将当前线程作为子线程的父线程
testThread.setFatherThread(this);
}
}
/**
* 根据传入参数,线程暂停特定时间
*/
private void threadSleep(int pauseTime)
{
try
{
Thread.sleep(pauseTime);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
/**
* 线程停止方法
*/
public void threadClose()
{
threadFlag = false;
}
/**
* 同步操作,子线程数量减一
*/
public void childThreadClose()
{
if (childThreadNum > 0)
{
childThreadNum--;
}
}
public int getPauseTime()
{
return pauseTime;
}
public void setPauseTime(int pauseTime)
{
this.pauseTime = pauseTime;
}
2、子线程
private FatherThread fatherThread;
记得正常完成任务和抛异常时都要关闭子线程
fatherThread.childThreadClose();
设置父线程
public void setFatherThread(UserMailsListenerThread userMailsListenerThread)
{
this.fatherThread = userMailsListenerThread;
}
分享到:
相关推荐
这篇学习笔记将深入探讨Java多线程的核心概念、实现方式以及相关工具的使用。 一、多线程基础 1. 线程与进程:在操作系统中,进程是资源分配的基本单位,而线程是程序执行的基本单位。每个进程至少有一个主线程,...
### Java多线程学习笔记 #### 一、线程的基本概念 在计算机科学中,**线程**(Thread)是程序执行流的最小单位。一个标准的程序只能做一件事情,而通过多线程技术,可以让程序同时处理多个任务。在Java中,线程是...
【UNIX多线程学习笔记】 在UNIX操作系统中,多线程是一种重要的编程模型,它允许多个执行流在单个进程中并发运行。多线程带来了许多优势,包括提高应用程序响应速度,充分利用多CPU系统的资源,以及优化程序结构,...
这份"C++多线程学习笔记1"涵盖了基础到进阶的多线程概念,旨在帮助初学者快速掌握这一关键技能。 首先,C++11引入了对多线程的支持,引入了`<thread>`库,使得创建和管理线程变得简单。创建一个新的线程可以使用`...
java基础:多线程学习笔记
多线程 学习笔记.md
java学习笔记2(多线程)java学习笔记2(多线程)
本篇学习笔记主要涵盖了线程基础、threading模块的使用以及线程同步控制。 首先,线程是操作系统分配CPU执行时间的基本单位,一个进程可以包含多个线程。在Python3中,线程的状态主要包括新建、就绪、运行、死亡、...
这篇文档和对应的源代码 博文链接:https://interper56-sohu-com.iteye.com/blog/172303
在计算机科学中,多线程是一种编程模型,允许一个应用程序同时执行多个任务。这提高了系统的效率,特别是对于处理大量并发操作的情况。以下是一些关于多线程的重要知识点,特别是关于在Linux和Windows环境下创建和...
在多线程编程中,进程和线程是两个核心概念。进程是操作系统资源分配的基本单位,每个独立执行的程序都对应一个进程。而线程则是程序执行的最小单元,是进程内部的一条执行路径。多线程是指在一个应用程序中存在多个...
在这个学习笔记中,主要讨论了Java中的线程同步机制,包括volatile关键字、synchronized以及Lock接口,特别是ReentrantLock的使用。 首先,对于线程1和线程2的疑惑,调试(debug)模式并不能改变线程的执行顺序。...
Java多线程是Java编程中的核心概念,它允许并发执行多个任务,提高程序的执行效率。以下是关于Java多线程的详细知识点: 1. **创建线程** - **继承Thread类**:创建一个新的类,该类继承自Thread类,并重写run()...
Java多线程学习笔记之自定义线程池 本篇文章主要介绍了Java多线程学习笔记之自定义线程池,通过深入了解ThreadPoolExecutor这个核心类,我们可以自定义线程池,满足不同的线程池需求。 Java多线程学习笔记之自定义...
Java 线程学习笔记 Java 线程创建有两种方法: 1. 继承 Thread 类,重写 run 方法:通过继承 Thread 类并重写 run 方法来创建线程,这种方法可以使线程具有自己的执行逻辑。 2. 实现 Runnable 接口:通过实现 ...
Java并发编程学习笔记,研究JAVA并发多线程编程的一本教程,使用并发技术可以开发出并行算法,充分利用多处理器的计算能力,避免硬件资源浪费。目前,在JAVA并发编程方面的论述系统且内容详实的技术资料不太多,Java...