当前位置: 首页 > news >正文

开发技术网站开发技术江苏网站建设

开发技术网站开发技术,江苏网站建设,绍兴市住房与城乡建设厅网站,.net响应式网站模板多线程 线程 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。 (理解:应用软件中互相独立,可以同时运行的功能) 进程 进程是程序的基本执行实体。(理解&#…

多线程

线程

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

(理解:应用软件中互相独立,可以同时运行的功能)

进程

进程是程序的基本执行实体。(理解:一个软件运行之后就是一个进程)

image-20240507230832108

多线程

有了多线程,就可以让程序同时做多件事情,就是为了提高程序的运行效率

多线程的应用场景

  • 软件中的耗时操作
  • 拷贝、迁移大文件
  • 加载大量的资源文件

并发

在同一时刻,有多个指令在单个CPU上交替执行

并行

在同一时刻,有多个指令在多个CPU上同时执行

多线程的实现方式

1.继承Thread类的方式进心实现

package xyz.dimeng.m01thread1;public class MyThread extends Thread{@Overridepublic void run() {//线程要执行的代码for (int i = 0; i < 100; i++) {System.out.println(getName()+"多线程方法"+i);}}
}
package xyz.dimeng.m01thread1;public class ThreadDemo {/**** @description 多线程的第一种启动方式:* 1.自己定义一个类继承Thread* 2.重写run方法* 3.创建子类的对象,并启动线程* @param args* @return void* @author 乔晓扑* @date 2024/5/7 23:24*/public static void main(String[] args) {MyThread t1 = new MyThread();MyThread t2 = new MyThread();t1.setName("线程1");t2.setName("线程2");t1.start();t2.start();}
}

执行结果:一会执行线程1,一会执行线程2

2.实现Runnable接口的方式进行实现

package xyz.dimeng.m02thread2;public class ThreadDemo {public static void main(String[] args) {/**** @description 多线程的第二种启动方式:* 1.自己定义一个类实现Runnable接口* 2.重写里面的run方法* 3.创建自己的类的对象* 4.创建一个Thread类的对象,并开启线程* @param args* @return void* @author 乔晓扑* @date 2024/5/7 23:38*/MyRun mr = new MyRun();Thread t1 = new Thread(mr);Thread t2 = new Thread(mr);t1.setName("线程1");t2.setName("线程2");t1.start();t2.start();}
}
package xyz.dimeng.m02thread2;public class MyRun implements Runnable{@Overridepublic void run() {//线程要执行的代码for (int i = 0; i < 100; i++) {Thread t = Thread.currentThread();System.out.println(t.getName()+"多线程方法"+i);}}
}

执行结果:一会执行线程1,一会执行线程2

3.利用Callable接口和Future接口方式实现

package xyz.dimeng.m03thread3;import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;public class ThreadDemo {public static void main(String[] args) throws ExecutionException, InterruptedException {/**** @description 多线程的第三种实现方式:*  特点:可以获取到多线程运行的结果*  1.创建一个类MyCallable实现Callable接口*  2.重写call(是有返回值的,表示多线程运行的结果)*  3.创建MyCallable对象(表示多线程要执行的任务)*  4.创建FutureTask的对象(作用管理多线程运行的结果)*  5.创建Thread类的对象,并启动* @param args* @return void* @author 乔晓扑* @date 2024/5/7 23:49*///创建MyCallable对象(表示多线程要执行的任务)MyCallable mc = new MyCallable();//创建FutureTask的对象(作用管理多线程运行的结果)FutureTask<Integer> ft  = new FutureTask<>(mc);Thread t1 = new Thread(ft);t1.start();System.out.println(ft.get());}
}
package xyz.dimeng.m03thread3;import java.util.concurrent.Callable;public class MyCallable implements Callable<Integer> {@Overridepublic Integer call() throws Exception {//求1~100的和int sum = 0;for (int i = 0; i <= 100; i++) {sum += i;}return sum;}
}

第三种可以获取到结果

第二种和第三种扩展性强可以继承其他的类

http://www.yayakq.cn/news/642838/

相关文章:

  • cms建站系统免费电商初学者
  • 企业营销系统和网站建设小破站下载
  • WordPress如何设置站点名称vi品牌形象设计案例
  • 电商网站需要哪些备案wecenter整合Wordpress
  • 宣传页在线设计软件网站优化培训班
  • 哪个网站推广产品好附近电脑培训学校
  • 网站百度关键词seo排名优化公司微网站建设价格
  • 单页面网站怎么优化房地产开发资质需要什么条件
  • 西安网站 技术支持牛商网企业网站自己怎么做
  • 网站数据库如何备份石家庄网站设计
  • 分销网站制作条件客户管理软件有哪些
  • 云南网站seo外包海珠一站式网站建设
  • 中国空间站建造完成遵义做网站 0852t
  • 北京网站制作的公司做视频网站公司要怎么做
  • 在阿里云备案网站通过做网站需要数据储存么
  • 北京建站者公司软件的开发流程
  • 巩义网站建设报价app免费下载安装
  • 青岛网站建设排名vs2015网站开发实例
  • 南海建设局网站网站开发的形式有
  • 深圳联雅网站建设wordpress自动添加图片alt属性
  • 外贸网站建设海外推广淘宝网站小视频怎么做
  • 深圳比较好的建站公司衡阳网站推广排名
  • 手机网站制作软件下载郑州外贸网站建设公司排名
  • 襄阳网站建设制作费用注册新公司网上核名网站
  • 嘉兴市城乡规划建设局网站网络系统分类
  • 网站特色深圳一建公司
  • 河南商丘网站中装建设
  • 萧山做网站公司办公用品网站建设策划书
  • asp.net 网站计数器四网合一网站建设
  • 哪个网站是用vue做的房地产政策政策最新消息