java创建多线程实现并行计算任务处理
1、直接上代码一看明白:
package multithreadingTest;
class fblib extends Thread{
public static Integer fb(Integer n){
return n<2?1:fb(n-1)+fb(n-2);
}
public static void bl1(int n) throws InterruptedException {
for (int i=0;i<n;i++){
System.out.println("fblib:"+i);
Thread.sleep(500);
}
}
@Override
public void run() {
super.run();
try {
bl1(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
//System.out.println(fb(40));
}
}
class countl extends Thread{
public static void bl(int n) throws InterruptedException {
for (int i=0;i<n;i++){
System.out.println("count1:"+i);
Thread.sleep(500);
}
}
@Override
public void run() {
super.run();
try {
bl(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class mutithDemo{
public mutithDemo(){}
public static void main(String[] args) throws InterruptedException {
// 1、不采用多线程进行并发执行
System.out.println("-----不采用多线程执行任务---------");
long startTime = System.currentTimeMillis();
fblib.bl1(10);
countl.bl(10);
long endTime = System.currentTimeMillis();
System.out.println(endTime-startTime);
// 2、采用多线进行并发任务执行
System.out.println("-----采用多线程执行任务实现并发---------");
long startTime1 = System.currentTimeMillis();
fblib f1 = new fblib();
countl f2 = new countl();
//开启两个线程执行两个任务
f1.start();
f2.start();
//等待这两个线程执行结束后在执行以下代码。
f1.join();
f2.join();
long endTime1 = System.currentTimeMillis();
System.out.println(endTime1-startTime1);
}
}
java创建多线程实现并行计算任务处理的更多相关文章
- JAVA创建多线程
首先:线程与进程的区别是什么呢? 进程:正在运行的一个程序称之为一个进程,进程负责了内存空间的划分,从宏观的角度:windows是在同时执行多个程序 从微观的角度看,CPU是在快速的切换要执行的程序. ...
- java创建多线程(转载)
转载自:Java创建线程的两个方法 Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对 ...
- java创建多线程的三种方式
/***************************继承Thread类创建多线程************************/ public class FirstThread extends ...
- java创建多线程&创建进程
概述 并发和并行是即相似又有区别: 并行:指两个或多个事件在同一时刻发生: 并发:指两个或多个事件在同一时间段内发生. 进程是指一个内存中运行中的应用程序.每个进程都有自己独立的一块内存空间,一个应用 ...
- Java创建多线程的三种方法
Java多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用ExecutorService.Callable.Future实现有返回结果的多线程.其中前两种方式线程执行完后都没 ...
- Java创建多线程和线程安全集合Vector
public class Test { public static Vector<String> data = new Vector<String>(); public sta ...
- Java 创建多线程的三种方法
1. 继承Thread类2. 实现Runnable接口3. 匿名类的方式 注: 启动线程是start()方法,run()并不能启动一个新的线程
- Java多线程开发系列之二:如何创建多线程
前文已介绍过多线程的基本知识了,比如什么是多线程,什么又是进程,为什么要使用多线程等等. 在了解了软件开发中使用多线程的基本常识后,我们今天来聊聊如何简单的使用多线程. 在Java中创建多线程的方式有 ...
- Java中多线程使用匿名内部类的方式进行创建3种方式
/* * 匿名内部类的格式: */ public class ThreadDemo { public static void main(String[] args) { // 继承thread类实现多 ...
随机推荐
- spring boot 2.0(三)使用docker部署springboot
Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下. 首先构建一个简单的 Spring Boot 项目, ...
- 从输入一个URL到页面渲染的流程简介
首先说明以下是我参考网上答案和自己的思考,给出自己的想法,如果有问题,欢迎大家吐槽从用户在浏览器中输入一个URL,到整个页面渲染,这个过程中究竟发生了什么呢?今天先简单写下整个过程,后面再一点点完善. ...
- px2rem在vue项目中的使用
使用方式: 1.安装 cnpm install px2rem-loader2. https://www.npmjs.com/package/px2rem-loader module.exports = ...
- numpy模块、matplotlib模块、pandas模块
目录 1. numpy模块 2. matplotlib模块 3. pandas模块 1. numpy模块 numpy模块的作用 用来做数据分析,对numpy数组(既有行又有列)--矩阵进行科学计算 实 ...
- mysql 发现 navicat 可以远程连接,代码无法远程连接
navicat可以远程连接, root账号也可以用代码连接. 其他的用户无法远程连接. 原因: 1.先检查下 mysql数据库里面 的 servers 表是否存在. 2.更新或者创建用户之后 使用: ...
- 对html2canvas的研究
介绍 该脚本允许您直接在用户浏览器上截取网页或部分网页的“屏幕截图”.屏幕截图基于DOM,因此它可能不是真实表示的100%准确,因为它没有制作实际的屏幕截图,而是根据页面上可用的信息构建屏幕截图. 这 ...
- 查看SSL证书的别名
1.把java目录下的keytool拷贝到证书目录下:2.进入证书目录,然后输入命令keytool -list -v -keystore file.jks -storepass password,发现 ...
- git windows下换行符问题
不同操系统下的换行符 CR回车 LF换行 Windows/Dos CRLF \r\n Linux/Unix LF \n MacOS CR \r 1.执行git config --get core.au ...
- 小程序的image图片显示
最近接触到了一点小程序的东西,跟我们平常的HTML还真不太一样,这里我先大概讲一下图片的显示问题, 小程序的图片用的是<image><image/>标签,他默认的大小是宽300 ...
- Selenium-webdriver+八种元素定位
进行Web页面自动化测试,对页面上的元素进行定位和操作是核心.而操作又是以定位为前提的,因此,对页面元素的定位是进行自动化测试的基础. 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素 ...