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

樟木头的建网站公司wordpress 搜索提示

樟木头的建网站公司,wordpress 搜索提示,专业网站设计公司和普通设计公司的区别,南沙区交通和建设局网站多线程学习多线程1. 并行与并发2.进程和线程3. *****多线程的实现方式3.1 继承Thread类的方式进行实现3.2 实现Runnable接口方式进行实现3.3 利用Callable和Future接口方式实现3.4 设置获取线程名字4.获得线程对象5.线程休眠6.线程调度[线程的优先级]7.后台线程/守护线程多线程…

多线程学习

  • 多线程
        • 1. 并行与并发
        • 2.进程和线程
        • 3. *****多线程的实现方式
          • 3.1 继承Thread类的方式进行实现
          • 3.2 实现Runnable接口方式进行实现
          • 3.3 利用Callable和Future接口方式实现
          • 3.4 设置获取线程名字
        • 4.获得线程对象
        • 5.线程休眠
        • 6.线程调度[线程的优先级]
        • 7.后台线程/守护线程

多线程

1. 并行与并发

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

2.进程和线程

进程:正在运行的软件
在这里插入图片描述

线程:进程中的单个顺序控制流,是一条执行路径
在这里插入图片描述

3. *****多线程的实现方式

在这里插入图片描述

3.1 继承Thread类的方式进行实现

在这里插入图片描述

public class MyThread extends Thread {@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println("线程开启"+i);}}public static void main(String[] args) {MyThread t1=new MyThread();MyThread t2=new MyThread();t1.start();t2.start();}
}
  • 为什么要重写run()方法?
    多线程开启之后执行run()方法,run()是用来封装被线程执行的代码
  • run()方法和start()方法的区别?
    run方法调用不开启线程,start开启线程
3.2 实现Runnable接口方式进行实现

在这里插入图片描述

public class MyRunnable implements Runnable{@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println("线程开启了"+i);}}public static void main(String[] args) {MyRunnable mr=new MyRunnable();Thread t1=new Thread(mr);t1.start();MyRunnable mrs=new MyRunnable();Thread t2=new Thread(mrs);t2.start();}
}
3.3 利用Callable和Future接口方式实现

在这里插入图片描述

public class MyCallable implements Callable<String> {@Overridepublic String call() throws Exception {for (int i = 0; i < 50; i++) {System.out.println("向女孩表白"+i);}return "答应";}public static void main(String[] args) throws ExecutionException, InterruptedException {MyCallable mt=new MyCallable();FutureTask<String> ft=new FutureTask<String>(mt);Thread t=new Thread(ft);t.start();String s = ft.get();System.out.println(s);}
}

get方法在线程开启之后调用
三种方式对比
在这里插入图片描述

3.4 设置获取线程名字
  1. 获取线程名字
public class Mythread extends Thread {@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println(getName()+"****"+i);}}public static void main(String[] args) {Mythread mt=new Mythread();mt.start();Mythread ss=new Mythread();ss.start();}
}
  1. 设置线程民资
  • set形式
        Mythread mt=new Mythread();mt.start();mt.setName("线程1");Mythread ss=new Mythread();ss.start();ss.setName("线程2");
  • 构造器形式
public class Mythread extends Thread {@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println(getName()+"****"+i);}}public Mythread(String name) {super(name);}public static void main(String[] args) {Mythread mt=new Mythread("线程1");mt.start();Mythread ss=new Mythread("线程2");ss.start();}
}

4.获得线程对象

在runnable中可以获取线程对象名字

public class MyRunnable implements Runnable {@Overridepublic void run() {for (int i = 0; i < 50; i++) {System.out.println(Thread.currentThread().getName()+"running"+i);}}public static void main(String[] args) {
//        MyRunnable myRunnable=new MyRunnable();
//        Thread thread=new Thread(myRunnable);
//        thread.setName("666");
//        thread.start();String name = Thread.currentThread().getName();System.out.println(name);}
}

5.线程休眠

Thread.sleep(3000);

 @Overridepublic void run() {for (int i = 0; i < 50; i++) {System.out.println(Thread.currentThread().getName()+"running"+i);try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}}}

6.线程调度[线程的优先级]

在这里插入图片描述
在这里插入图片描述

public class MyCallable implements Callable<String> {@Overridepublic String call() throws Exception {for (int i = 0; i < 50; i++) {System.out.println(Thread.currentThread().getName()+"***"+i);}return "线程执行结束";}public static void main(String[] args) {MyCallable mc=new MyCallable();FutureTask<String> ft=new FutureTask<>(mc);Thread thread=new Thread(ft);thread.start();thread.setPriority(2);thread.setName("飞机");
//        System.out.println(thread.getPriority());MyCallable mc2=new MyCallable();FutureTask<String> ft2=new FutureTask<>(mc2);Thread t2=new Thread(ft2);t2.start();t2.setPriority(10);t2.setName("坦克");
//        System.out.println(t2.getPriority());}
}

7.后台线程/守护线程

普通线程结束 守护线程也随之结束

public class MyThread extends Thread {@Overridepublic void run() {for (int i = 0; i < 10; i++) {System.out.println(getName()+"****"+i);}}public MyThread(String name) {super(name);}public static void main(String[] args) {MyThread mt=new MyThread("女神");mt.start();MyThread2 t2=new MyThread2("备胎");t2.setDaemon(true);t2.start();}
}
public class MyThread2 extends Thread {@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println(getName()+"****"+i);}}public MyThread2(String name) {super(name);}
}
http://www.yayakq.cn/news/139836/

相关文章:

  • 无锡做公司网站的网页制作基础教程第二版cc6照片
  • dedecms 手机网站模板安庆商城网站开发
  • 做高端品牌网站网上开小店怎么开
  • 建设银行网站不能登录不了2023网络舆情案例分析
  • qq说说赞在线自助下单网站做北美市场用哪个网站
  • 哈尔滨网站优化排名软件下载网站哪个比较好
  • 手机网站推广广东省 网站建站
  • seo怎么做教程seo外包服务
  • 青海省公路建设市场信用信息服务网站做百度网站那家好
  • 吉林市做网站公司微信公众号电商网站开发
  • 地方门户网站管理系统网络搭建基础教程
  • 那个餐饮网站北京网站建设方案飞沐
  • 深圳做h5网站制作广西住房建设厅网站首页
  • 如何建设网站平台wordpress七牛云上传图片
  • 同城配送网站建设做推广要知道的网站
  • 商丘哪里教做网站的杭州做网站需要多少钱
  • 怎么让别人访问自己做的的网站做外贸soho网站的公司吗
  • 辽宁沈阳建设工程信息网站珠海网站建设尚古道策略
  • 西部数码网站核验单下载网站城市分站是怎么做的
  • 只做衬衣网站WordPress百度MIP手机主题
  • 建设企业网站企业网上银行登录官网微信网站对接
  • 那里做网站好苏州工业设计公司排行
  • 一个网站做几个关键词郑州今天刚刚发生的新闻
  • 做视频网站赚钱成都计算机培训机构哪个最好
  • 安卓优化大师最新版下载济南网络优化推广
  • 淘宝上做网站行吗标智客logo在线设计生成器免费
  • 菏泽网站建设熊掌号北京网站建设推
  • 百度网站回档怎么能恢复wordpress 中文站
  • 网站推广有哪些常用的方法邯郸网站建
  • 网站导航的展开与收缩怎么做的网站后台文件名