Java并发程序入门介绍
作者:Microgoogle 时间:2022-03-05 12:05:26
今天看了看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();
}
}
标签:Java,并发程序
0
投稿
猜你喜欢
java 使用DecimalFormat进行数字的格式化实例详解
2022-04-28 10:55:25
使用springboot整合RateLimiter限流过程
2022-09-12 21:42:48
Springboot整合pagehelper分页功能
2021-12-14 15:53:48
C#泛型方法在lua中表示的一种设计详解
2022-08-24 20:03:12
使用Spring的拦截器监测每个Controller或方法的执行时长
2021-12-19 16:36:01
Android Vibrator调节震动代码实例
2022-07-06 04:56:46
Java调用第三方http接口的常用方式总结
2023-11-06 22:47:24
Android使用criteria选择合适的地理位置服务实现方法
2022-09-26 14:24:34
Android Mms之:短信发送流程(图文详解)
2022-07-27 02:10:21
Java8中Optional操作的实际应用
2022-04-30 22:52:31
深入解析Java并发程序中线程的同步与线程锁的使用
2022-03-19 10:25:38
Spring Boot 集成Elasticsearch模块实现简单查询功能
2022-09-05 06:31:31
Spring Boot实现分布式锁的自动释放的示例代码
2023-10-17 11:06:24
详细了解C# 枚举与位枚举
2023-02-19 17:36:57
Unity Shader实现新手引导遮罩镂空效果
2022-08-18 16:25:12
IDEA(jetbrain通用)使用教程图解
2023-04-15 04:05:49
Java 客户端操作 FastDFS 实现文件上传下载替换删除功能
2022-06-01 15:01:38
基于C++实现的哈夫曼编码解码操作示例
2023-10-13 13:02:43
SpringMVC拦截器创建配置及执行顺序
2023-06-06 20:41:16
解决AMD无法使用Android studio问题
2022-04-13 00:17:32