Java并发程序入门介绍
更新时间:2015年03月26日 21:11:51 作者:Microgoogle
这篇文章主要介绍了Java并发程序入门 ,需要的朋友可以参考下
今天看了看Java并发程序,写一写入门程序,并设置了线程的优先级。
class Elem implements Runnable{
public static int id = 0;
private int cutDown = 5;
private int priority;
public void setPriority(int priority){
this.priority = priority;
}
public int getPriority(){
return this.priority;
}
public void run(){
Thread.currentThread().setPriority(priority);
int threadId = id++;
while(cutDown-- > 0){
double d = 1.2;
while(d < 10000)
d = d + (Math.E + Math.PI)/d;
System.out.println("#" + threadId + "(" + cutDown + ")");
}
}
}
public class Basic {
public static void main(String args[]){
for(int i = 0; i < 10; i++){
Elem e = new Elem();
if(i == 0 )
e.setPriority(Thread.MAX_PRIORITY);
else
e.setPriority(Thread.MIN_PRIORITY);
Thread t = new Thread(e);
t.start();
}
}
}
由于机器很强悍,所以先开始并没看到并发的效果,感觉是按顺序执行的,所以在中间加了浮点数的运算来延迟时间。
当然,main函数里面可以用Executors来管理线程。
import java.util.concurrent.*;
class Elem implements Runnable{
public static int id = 0;
private int cutDown = 5;
private int priority;
public void setPriority(int priority){
this.priority = priority;
}
public int getPriority(){
return this.priority;
}
public void run(){
Thread.currentThread().setPriority(priority);
int threadId = id++;
while(cutDown-- > 0){
double d = 1.2;
while(d < 10000)
d = d + (Math.E + Math.PI)/d;
System.out.println("#" + threadId + "(" + cutDown + ")");
}
}
}
public class Basic {
public static void main(String args[]){
// for(int i = 0; i < 10; i++){
// Elem e = new Elem();
// if(i == 0 )
// e.setPriority(Thread.MAX_PRIORITY);
// else
// e.setPriority(Thread.MIN_PRIORITY);
// Thread t = new Thread(e);
// t.start();
// }
ExecutorService exec = Executors.newCachedThreadPool();
for(int i = 0; i < 10; i++){
Elem e = new Elem();
if(i == 0 )
e.setPriority(Thread.MAX_PRIORITY);
else
e.setPriority(Thread.MIN_PRIORITY);
exec.execute(e);
}
exec.shutdown();
}
}
相关文章
基于SpringBoot和Vue3的博客平台发布、编辑、删除文章功能实现
在上一个教程中,我们已经实现了基于Spring Boot和Vue3的用户注册与登录功能。本教程将继续引导您实现博客平台的发布、编辑、删除文章功能,需要的朋友参考一下2023-04-04
SpringBoot获取yml和properties配置文件的内容
这篇文章主要为大家详细介绍了SpringBoot获取yml和properties配置文件的内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-04-04
SpringBoot中的WebSocketSession原理详解
这篇文章主要介绍了SpringBoot中的WebSocketSession原理详解,传统的 HTTP 协议是无法支持实时通信的,因为它是一种无状态协议,每次请求都是独立的,无法保持连接。为了解决这个问题,WebSocket 协议被引入,需要的朋友可以参考下2023-07-07


最新评论