java怎么写1000个线程

1.java,一个程序建立1000个线程,每一个线程加1到一个变量sum

1、程序建立1000个线程,有可能造成系统创建大量线程而导致消耗完系统内存,还会增加创建和销毁线程上所花的时间以及系统资源的开销

2、在创建线程数多的情况下,可以考虑使用线程池

以下是Java自带的几种线程池:

(1)、newFixedThreadPool 创建一个指定工作线程数量的线程池。

每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。

(2)、newCachedThreadPool 创建一个可缓存的线程池。

这种类型的线程池特点是:

1).工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可灵活的往线程池中添加线程。

2).如果长时间没有往线程池中提交任务,即如果工作线程空闲了指定的时间(默认为1分钟),则该工作线程将自动终止。终止后,如果你又提交了新的任务,则线程池重新创建一个工作线程。

(3)、创建一个单线程化的Executor,即只创建唯一的工作者线程来执行任务,如果这个线程异常结束,会有另一个取代它,保证顺序执行(我觉得这点是它的特色)。

单工作线程最大的特点是可保证顺序地执行各个任务,并且在任意给定的时间不会有多个线程是活动的 。

(4)、newScheduleThreadPool 创建一个定长的线程池,而且支持定时的以及周期性的任务执行,类似于Timer。

3、示例代码

package test;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

public class {

public static void main(String[] args) {

ExecutorService cachedThreadPool = Executors.newCachedThreadPool();

for (int i = 0; i < 1000; i++) {

cachedThreadPool.execute(new Runnable() {

public void run() {

//在这里执行你需要的功能

}

});

}

}

}

2.在java中怎样写个多线程并发

多线程有两种形式,一种是直接让当前类继承 Thread 重写run方法来实现,另一种是使用 Runnable接口。推荐第二种方法。

例:

public class Counter {

public volatile static int count = 0;

public static void inc() {

//这里延迟1秒,使得结果明显

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

}

count++;

}

public static void main(String[] args) {

//同时启动1000个线程,去进行i++计算,看看实际结果

for (int i = 0; i

3.在java中怎样写个多线程并发

多线程有两种形式,一种是直接让当前类继承 Thread 重写run方法来实现,另一种是使用 Runnable接口。

推荐第二种方法。 例: public class Counter { public volatile static int count = 0; public static void inc() { //这里延迟1秒,使得结果明显 try { Thread.sleep(1000); } catch (InterruptedException e) { } count++; } public static void main(String[] args) { //同时启动1000个线程,去进行i++计算,看看实际结果 for (int i = 0; i < 1000; i++) { new Thread(new Runnable() { @Override public void run() { Counter.inc(); } }).start(); } //这里每次运行的值都有可能不同,可能不为1000 System.out.println("运行结果:Counter.count=" + Counter.count); } }。

4.Java多线程的几种写法

有三种:

(1)继承Thread类,重写run函数

创建:

class xx extends Thread{

public void run(){

Thread.sleep(1000) //线程休眠1000毫秒,sleep使线程进入Block状态,并释放资源

}}

开启线程:

对象.start() //启动线程,run函数运行

(2)实现Runnable接口,重写run函数

开启线程:

Thread t = new Thread(对象) //创建线程对象

t.start()

(3)实现Callable接口,重写call函数

Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。

Callable和Runnable有几点不同:

①Callable规定的方法是call(),而Runnable规定的方法是run().

②Callable的任务执行后可返回值,而Runnable的任务是不能返回值的

③call()方法可抛出异常,而run()方法是不能抛出异常的。

④运行Callable任务可拿到一个Future对象,Future表示异步计算的结果。它提供了检查计算是否完成的方法,以等

待计算的完成,并检索计算的结果.通过Future对象可了解任务执行情况,可取消任务的执行,还可获取任务执行的结果

5.如何用Java编写多线程

//两种方式

public class ThreadDemo extends Thread{

public void run(){

System.out.println("线程"+Thread.currentThread().getName());

}

public static void main(String[] args){

ThreadDemo t1 = new ThreadDemo();//创建线程

t1.start();//启动线程

//创建第二个线程

ThreadDemo t2 = new ThreadDemo();//创建线程

t2.start();//启动线程

}

}//方式二,实现Runnable接口

public class ThreadDemo implements Runnable{

public void run(){

System.out.println("线程"+Thread.currentThread().getName());

}

public static void main(String[] args){

//创建线程实例

ThreadDemo td = new ThreadDemo()

//创建线程1

Thread t1 = new Thread(td);

t1.start();

//创建线程2

Thread t2 = new Thread(td);

t2.start();

}

}

6.怎么设置1000线程在线程池 java

如果此时线程池中的数量小于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。

如果此时线程池中的数量等于 corePoolSize,但是缓冲队列 workQueue未满,那么任务被放入缓冲队列。 如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量小于maximumPoolSize,建新的线程来处理被添加的任务。

如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量等于maximumPoolSize,那么通过 handler所指定的策略来处理此任务。public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue)。

7.编制一个Java程序,创建10个线程,用于求解1~1000的和

class Digital{

private volatile int i =0;

private volatile long total =0;

private boolean completed = false;

public void increase(){

synchronized(this){

System.out.println(Thread.currentThread().getName()+" is increasing"); //辅助观看结果的 ,可以注释掉

if(++i &lt;= 1000)

total += i;

else{

this.completed = true;

this.notifyAll(); //唤醒主线程

}

}

}

public long getTotal(){

return this.total;

}

public boolean isCompleted(){

return this.completed;

}

}

public class DigitalIncrease extends Thread {

Digital digital = null;

DigitalIncrease(Digital digtal){

this.digital = digtal;

start();

}

public void run(){

while(true){

if(digital.isCompleted())

break; //如果加法操作已经完成了 就退出线程

digital.increase();

}

}

public static void main(String [] args){

Digital digital = new Digital();

DigitalIncrease [] diArray = new DigitalIncrease[10];

for(int i = 0; i&lt;10; i++){

diArray[i]= new DigitalIncrease(digital); //创建10个线程

}

//如果加法没完成就让主线程等待

try {

synchronized (digital){

while(!digital.isCompleted())

digital.wait();

}

}catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println(digital.getTotal());

}

}

java怎么写1000个线程

转载请注明出处育才学习网 » java怎么写1000个线程

知识

怎么写童话故事250字

阅读(311)

本文主要为您介绍怎么写童话故事250字,内容包括怎样写一篇250字的童话故事,三年级怎样篇写童话故事作文250字,写童话故事作文250字。乌云从东边飘到了西边,眼看就要下雨了。正在草地上玩耍的小白兔着急了,它自言自语地说:“这可怎么办呢?”它一

知识

台账是什么怎么写

阅读(382)

本文主要为您介绍台账是什么怎么写,内容包括台帐怎么写,什么是台帐,怎样建台帐,请问什么是台账,简单的台账应该怎么做呢>>。除以上内容外,日期、补助等,备注别忘了领导审批。以表格的形式写作出来就行了。所谓台账,就是在推行一项工作机制的时

知识

顺丰跨国快递单怎么写

阅读(429)

本文主要为您介绍顺丰跨国快递单怎么写,内容包括顺丰国际快递单需要填什么,顺丰国际快递单填写,顺丰国际快递单填写。国际EMS快递面单具体填写方式如下图:

知识

求捐款申请书怎么写

阅读(269)

本文主要为您介绍求捐款申请书怎么写,内容包括捐款申请书怎么写,写一份募捐申请书,学校资助申请书范文怎么写。给你份捐款倡议书范文吧倡议书公司号召向青海玉树抗震救灾捐款倡议书机关各部室、各直属单位、各专业分公司、区实业公司4月14

知识

草书中蓦字草书怎么写

阅读(274)

本文主要为您介绍草书中蓦字草书怎么写,内容包括暮字的草书写法,暮字的草书写法,盎的草书写法。“暮”字的草书写法如下:基本字义:用作名词,意思是:傍晚、太阳将落的时候。2、用作形容词,意思是:天晚的。3、用作形容词,意思是:晚、将

知识

不的笔顺笔画怎么写

阅读(288)

本文主要为您介绍不的笔顺笔画怎么写,内容包括不的笔顺怎么写的,不的笔画顺序怎么写的,不的笔顺怎么写呀。不的拼音:bù 笔画数:4笔顺、笔画:横、撇、竖、点、基本释义:[bù]:1.副词。 2.用在动词、形容词和其它词前面表示否定或加在名词

知识

部门管理目标怎么写

阅读(297)

本文主要为您介绍部门管理目标怎么写,内容包括如何写部门目标和计划,部门工作目标怎么写,部门目标怎么写。一定时期的工作预先作出安排和打算时,都要制定工作计划.我们要养成做工作计划的习惯,日后做事都按这个工作计划流程来走,能让我们少走

知识

给狗买狗笼的日记怎么写

阅读(239)

本文主要为您介绍给狗买狗笼的日记怎么写,内容包括写狗的观察日记怎样写,小狗的日记怎么写,写一篇小狗的日记。可以告诉你大方向,作文还是自己写比较好.你家如果没有狗狗,可以借邻居的狗狗做材料,写能自己的就好了. 第一步: 描写一下狗狗的毛的

知识

幼师求职宣言怎么写

阅读(245)

本文主要为您介绍幼师求职宣言怎么写,内容包括幼教求职宣言怎么写,幼教求职宣言怎么写,求职宣言怎么写。求职宣言写作原则 1.语气自然:语言和句子要简单明了。写信就像说话一样,语气可以正式但不能僵硬。语言直截了当,不要依靠词典。 2.通俗易

知识

欺字笔画顺序怎么写

阅读(292)

本文主要为您介绍欺字笔画顺序怎么写,内容包括欺字笔顺怎么写,欺字笔顺怎么写,欺字五笔怎么打字。欺字的五笔全码是:ADWW

知识

2015小区数据报告怎么写

阅读(271)

本文主要为您介绍2015小区数据报告怎么写,内容包括2015年小区总结怎么写,小区调查报告怎么写,2015年小区总结怎么写。强调安全与管理的重要性。没有范文。以下供参考,主要写一下主要的工作内容,如何努力工作,取得的成绩,最后提出一些合理化的建

知识

第51的英文怎么写

阅读(262)

本文主要为您介绍第51的英文怎么写,内容包括51的英文怎么写,51的英文怎么写,51的英文怎么写。第1 first 第2 second 第3 third 第4 fourth 第5 fifth 第6 sixth 第7 seventh 第

知识

好人好事事迹怎么写

阅读(358)

本文主要为您介绍好人好事事迹怎么写,内容包括好人好事事迹,100字左右,多一点事迹,好人好事事迹材料,好人好事事迹。事迹一 昨天看到一个人乱扔垃圾,我就尾随到他家门外,记下了地址。昨晚夜黑风高,我背起装满砖头的书包,爬上他家墙头,把一块块砖

知识

论文的现实意义和理论意义怎么写

阅读(414)

本文主要为您介绍论文的现实意义和理论意义怎么写,内容包括论文的理论意义和现实意义怎么写,毕业论文的开题报告理论意义和现实意义分别怎么写,论文的理论意义和实践意义怎么写。您的开题报告有什么要求呢 开题报告是需要多少字呢 开题报告

知识

怎么用myeclipse写java

阅读(244)

本文主要为您介绍怎么用myeclipse写java,内容包括如何使用myeclipse写java程序,如何使用myeclipse写最简单的JAVA程序(要详细步骤),如何使用myeclipse写java程序。打开myeclipse软件进去后就是myeclipse的界面,写java程序首先得建一个java工程

知识

cjava在简历怎么写

阅读(259)

本文主要为您介绍cjava在简历怎么写,内容包括简历中对c语言和java语言的熟练程度怎么写,简历上的项目描述(JAVA)怎么写,java程序员的简历怎么写。相同的地方:语法类似:由于Java可以算是从C++发展而来的,因此Java与C语言的语法比较类似2、编程的

知识

易语言怎么写多线程替代时钟

阅读(692)

本文主要为您介绍易语言怎么写多线程替代时钟,内容包括易语言线程和时钟的区别,易语言延时如何用时钟代替,易语言线程和时钟的区别。.支持库 EThread.支持库 iext5库 spec.程序集 窗口程序集1.程序集变量 热键_, 整数型.子程序 __启动窗口_

知识

怎么写一个java框架

阅读(260)

本文主要为您介绍怎么写一个java框架,内容包括如何写一个自己的Java框架,如何写一个自己的Java框架,java框架怎么写。自动化测试框架 ,即是应用于自动化测试所用的框架。按照框架的定义,自动化测试框架要么是提供可重用的基础自动化测试模块,

知识

java一条语句太长怎么跨行写

阅读(242)

本文主要为您介绍java一条语句太长怎么跨行写,内容包括在JAVA语句中,如果语句太长了,我想连着在第二行写,要怎么实现啊,java很长一段sql怎么写在一行可以带换行的,在java中写一段很长的SQL语句该怎么写我这个该怎么改。String aa="asdfgdjkh

知识

javaunittest怎么写

阅读(188)

本文主要为您介绍javaunittest怎么写,内容包括怎样创建一个javaUnittest,javaUnittest怎么测试单个方法吗,java单元测试怎么写。往简单了说,在没有返回值的方法前加上@Test ,然后将junit的jar包引入就好了。。这个ide都会有的,直接引入就行了,

知识

java应届生工作经验怎么写

阅读(223)

本文主要为您介绍java应届生工作经验怎么写,内容包括Java简历中工作经验怎么写,学java马上就业了(有三年非java专业工作经验),简历应该怎么写,java有一年工作经验,简历该怎么写才好,都需要注意什么。错误示范:java后台开发2、前端编写正确范例

知识

java开发设计文档怎么写

阅读(264)

本文主要为您介绍java开发设计文档怎么写,内容包括如何书写Java项目的开发文档,如何书写Java项目的开发文档,软件开发中详细设计文档怎么写。我现在公司是CMMI4认证的,最近我项目组在开始新产品,我负责了大部分文档编写。。人员流动是项目进

[/e:loop]