Java并发程序入门介绍
作者:Microgoogle 发布时间:2022-03-05 12:05:26
标签: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();
}
}


猜你喜欢
- 本文实例为大家分享了java实现简易飞机大战的具体代码,供大家参考,具体内容如下整体思路1.创建游戏窗体,添加面板JPanel,重写JPan
- Android游戏开发中主要的类除了控制类就是显示类,
- 编写按钮属性首先再values/themes 或者values/style在文件下编写按钮属性buttonBarPositiveButton
- 前言我们大多数在两种情况下可以看到悬浮窗,一个是视频通话时的悬浮窗,另一个是360卫士的悬浮球,实现此功能的方式比较多,这里以视频通话悬浮窗
- 关于modelandview跳转问题小白刚刚开始学习使用springmvc框架,配置好简单的web.xml文件和springmvc的配置文件
- Visual Studio 2019 Vue项目 创建成功后可看到如下结构 Visual Studio 2019配置vue项目具体文件结构如
- 本文研究的主要是Java编程中的复用类,那么到底复用类是什么东西,又有什么用法,下面具体介绍。看了老罗罗升阳的专访,情不自禁地佩服,很年轻,
- 基本原理:利用URLConnection获取要下载文件的长度、头部等相关信息,并设置响应的头部信息。并且通过URLConnection获取输
- maven打包指定jdk的版本问题今天遇到个问题,项目中新写了一个接口,其中用到了lambda表达式,本地跑是没问题的,但提交到gitLab
- 本文实例讲述了Android实现基于滑动的SQLite数据分页加载技术。分享给大家供大家参考,具体如下:main.xml如下:<men
- 分布式项目和传统项目的区别就是,分布式项目有多个服务,每一个服务仅仅只实现一套系统中一个或几个功能,所有的服务组合在一起才能实现系统的完整功
- 本文实例讲述了Android编程自定义AlertDialog样式的方法。分享给大家供大家参考,具体如下:开发的时候,通常我们要自定义Aler
- 1、系统信息:Windows10 64位2、环境搭建参考:https://www.jb51.net/article/185086.htm3、
- Android环境布置完毕,直接就是一个Helloworld程序,详情请看《利用adt-bundle轻松搭建Android开发环境与Hell
- 一、需求来源app需要支持实现游客模式,启动后直接进入首页菜单,但是进入二级页则自动调用登录页面。总结需求就是父视图拦截子视图的响应事件,思
- 这篇文章主要介绍了Java使用Collections工具类对List集合进行排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一
- 概述这里是Mac环境,如果是window环境的同学,在环境搭建和工具上可以选择Window环境的。先看看需要到的工具;1、apktool:h
- controller传boolean形式值@GetMapping("/check-cart")public List&l
- 代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基
- Java中的wait/notify/notifyAll可用来实现线程间通信,是Object类的方法,这三个方法都是native方法,是平台相