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

国外哪些网站是python做的网站正在建设中网页

国外哪些网站是python做的,网站正在建设中网页,大岭山东莞网站建设,品牌策划 品牌年度服务多线程 同时执行多个任务,例如一个人一边听歌,一边跳舞 继承Thread类实现多线程的方式 定义一个MyThread类继承Thread类,重写里面的run方法 package com.itxs.demo01;/*** Classname : MyThread* Description : TODO 自定义线程继承Thread类*…

多线程

同时执行多个任务,例如一个人一边听歌,一边跳舞

继承Thread类实现多线程的方式

定义一个MyThread类继承Thread类,重写里面的run方法

package com.itxs.demo01;/*** @Classname : MyThread* @Description : TODO 自定义线程继承Thread类* @Author : lin_refuel@qq.com*/
public class MyThread extends Thread{@Overridepublic void run() {//super.run();for (int i = 0; i < 20; i++) {System.out.println("i = " + i);}}
}

测试多线程类

package com.itxs.demo01;/*** @Classname : demo01* @Description : TODO 多线程的测试类* @Author : lin_refuel@qq.com*/
public class demo01 {public static void main(String[] args) {// 线程对象创建MyThread my01 = new MyThread();MyThread my02 = new MyThread();MyThread my03 = new MyThread();MyThread my04 = new MyThread();//开启线程的方法startmy01.start();my02.start();my03.start();my04.start();}
}

线程名字的获取和设置

自定义线程继承Thread类

package com.itxs.demo02;/*** @Classname : MyThread* @Description : TODO 自定义线程 - 继承Thread类* @Author : lin_refuel@qq.com*/
public class MyThread extends Thread {public MyThread() {}public MyThread(String name) {super(name);}@Overridepublic void run() {for (int i = 0; i < 20; i++) {// this.getName获取类中自己的Name值System.out.println(this.getName() + " i =" + i);}}
}

测试线程

package com.itxs.demo02;/*** @Classname : demo01* @Description : TODO 多线程名字设置的方式* @Author : lin_refuel@qq.com*/
public class demo01 {public static void main(String[] args) {//创建线程对象// 方式一:通过构造方法进行设置每个线程名字MyThread my01 = new MyThread("线程01");MyThread my02 = new MyThread("线程02");MyThread my03 = new MyThread("线程03");MyThread my04 = new MyThread();// 方式二:通过方法setName设置线程名字
//        my01.setName("线程01");
//        my02.setName("线程02");
//        my03.setName("线程03");my04.setName("线程04");//开启线程my01.start();my02.start();my03.start();my04.start();}
}

运行结果:
在这里插入图片描述

获取正在运行的线程对象

获取正在运行的线程

Thread.currentThread()

通过上面的方法,获取到每个运行线程的名字

package com.itxs.demo02;/*** @Classname : MyThread* @Description : TODO 自定义线程(输出0-19) - 继承Thread类* @Author : lin_refuel@qq.com*/
public class MyThread extends Thread {public MyThread() {}public MyThread(String name) {super(name);}@Overridepublic void run() {for (int i = 0; i < 20; i++) {// this.getName获取类中自己的Name值System.out.println(Thread.currentThread().getName() + " i =" + i);}}
}
package com.itxs.demo02;/*** @Classname : demo03* @Description : TODO 获取每个正在运行的线程的方法* @Author : lin_refuel@qq.com*/
public class demo03 {public static void main(String[] args) {// 创建几个线程对象,设置每个线程的名字MyThread my01 = new MyThread("多线程01");MyThread my02 = new MyThread("多线程02");MyThread my03 = new MyThread("多线程03");MyThread my04 = new MyThread("多线程04");//开启线程my01.start();my02.start();my03.start();my04.start();// main 其实也是一个线程,但是却是主线程// 输出0-19//设置主线程名字的方法 Thread.currentThread是获取正在运行的线程//setName是设置名字Thread.currentThread().setName("主线程");for (int i = 0; i < 20; i++) {System.out.println( Thread.currentThread().getName()+"i = " + i);}}
}

线程调度

  • 两种线程调度模型

    • 分时调度模型:所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间

    • 抢占调度模型:优先让优先级高的线程使用 CPU,如果线程的欧优先级相同,那么随机选择一个,优先级高的线程获取的 CPU 占用时间会相对多一丢丢丢丢丢……

    Java 使用的是抢占式的调度模型

线程优先级设置

  • Thread 类中设置和获取线程优先级的方法

    • public final int getPriority():返回次线程的优先级

    • public final void setProiority(int newPriority):更改次线程的优先级

自定义的线程类-继承Thread类

package com.itxs.demo02;/*** @Classname : MyThread* @Description : TODO 自定义线程(输出0-19) - 继承Thread类* @Author : lin_refuel@qq.com*/
public class MyThread extends Thread {public MyThread() {}public MyThread(String name) {super(name);}@Overridepublic void run() {for (int i = 0; i < 20; i++) {// this.getName获取类中自己的Name值System.out.println(Thread.currentThread().getName() + " i =" + i);}}
}

优先级测试

package com.itxs.demo02;/*** @Classname : demo02* @Description : TODO 线程调度测试* @Author : lin_refuel@qq.com*/
public class demo02 {public static void main(String[] args) {// 创建线程对象MyThread mt01 = new MyThread("线程01");MyThread mt02 = new MyThread("线程02");MyThread mt03 = new MyThread("线程03");//修改线程的优先级mt01.setPriority(Thread.MIN_PRIORITY);//1mt02.setPriority(Thread.NORM_PRIORITY);//5mt03.setPriority(Thread.MAX_PRIORITY);//10// 线程的优先级输出
//        System.out.println(mt01.getPriority());
//        System.out.println(mt02.getPriority());
//        System.out.println(mt03.getPriority());//开启线程测试那个线程优先完成mt03.start();mt02.start();mt01.start();}
}

线程控制

方法名说明
static void sleep(long ms)使当前正在执行的线程停留指定的毫秒数
void join()等待这个进程死亡
void setDaemon(boolean on)将此线程标记为守护进程,当运行线程都是守护线程时,JVM 将退出

sleep方法

案例:华山论剑

自定义线程类

package com.itxs.demo02;/*** @Classname : MyThread* @Description : TODO 自定义一个线程 - 继承Thread类* @Author : lin_refuel@qq.com*/
public class MyThread extends Thread{public MyThread() {}public MyThread(String name) {super(name);}@Overridepublic void run() {for (int i = 1; i <=20 ; i++) {System.out.println(Thread.currentThread().getName() + "出了第"+i+"招");try {Thread.sleep(1000);//停留一秒} catch (InterruptedException e) {e.printStackTrace();}}}
}

sleep测试类

package com.itxs.demo02;/*** @Classname : demo02* @Description : TODO 线程测试 - sleep* @Author : lin_refuel@qq.com*/
public class demo02 {public static void main(String[] args) {//创建线程对象MyThread mt01 = new MyThread("黄固");MyThread mt02 = new MyThread("欧阳锋");MyThread mt03 = new MyThread("段智兴");MyThread mt04 = new MyThread("洪七公");//开启线程mt01.start();mt02.start();mt03.start();mt04.start();}
}

join方法

歌曲《天下》,原唱:张杰,翻唱:池瑶和高鱼

package com.itxs.demo03;/*** @Classname : MyThread* @Description : TODO* @Author : lin_refuel@qq.com*/
public class MyThread extends Thread {public MyThread() {super();}public MyThread(String name) {super(name);}// 定义一个数组存放歌词String[] song = {"烽烟起寻爱似浪淘沙","遇见她如春水映梨花","挥剑断天涯","相思轻放下"};@Overridepublic void run() {for (int i = 0; i < song.length; i++) {System.out.println(Thread.currentThread().getName() + "正在唱:" + song[i]);}}
}

测试-张杰唱完后,两个翻唱继续唱

package com.itxs.demo03;/*** @Classname : demo01* @Description : TODO* @Author : lin_refuel@qq.com*/
public class demo01 {public static void main(String[] args) throws InterruptedException {//创建线程MyThread mt01 = new MyThread("张杰");MyThread mt02 = new MyThread("池瑶");MyThread mt03 = new MyThread("高鱼");//开启线程mt01.start();mt01.join();//等待张杰唱完,mt01执行完后执行后面的线程mt02.start();mt03.start();}
}

setDaemon()

守护线程,总结就是当创建的线程对象设置为守护线程后,主线程里面的内容执行完后,所有开启的多线程都会停止执行

自定义的线程,执行20次循环

package com.itxs.demo04;/*** @Classname : MyThread* @Description : TODO - 自定义线程* @Author : lin_refuel@qq.com*/
public class MyThread extends Thread{public MyThread() {super();}public MyThread(String name) {super(name);}@Overridepublic void run() {for (int i = 0; i < 20; i++) {System.out.println(Thread.currentThread().getName()+"报数:"+i);}}
}

测试守护线程

package com.itxs.demo04;/*** @Classname : demo01* @Description : TODO* @Author : lin_refuel@qq.com*/
public class demo01 {public static void main(String[] args) {//创建线程对象MyThread mt01 = new MyThread("1号");MyThread mt02 = new MyThread("2号");MyThread mt03 = new MyThread("3号");System.out.println("开始报数");//mt01,02,03设置为守护线程mt01.setDaemon(true);mt02.setDaemon(true);mt03.setDaemon(true);// 线程开启mt01.start();mt02.start();mt03.start();// 主线程执行三次循环for (int i = 0; i < 3; i++) {System.out.println("报数中");}System.out.println("停止报数");}
}

在这里插入图片描述

线程的生命周期

  • 新建:创建线程对象(通过 start() 进入下一个环节)

  • 就绪:有执行资格,没有执行权(抢占 CPU 的执行权)

  • 运行:有执行资格,有执行权(可能被其他线程抢走 CPU 的执行权,则回到就绪状态,若遇到阻塞式方法,则失去运行权和执行这个,等待,当阻塞方法调用结束之后,回到就绪状态)

  • 死亡:线程死亡,成为垃圾

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

相关文章:

  • 如何做图片 网站 链接wordpress 采集系统
  • 音乐设计网站推荐网页单页面设计
  • 做网站主要注意些什么营销推广方式有哪些
  • 做网站怎样使图片自由移动有哪些做简历的网站
  • 有什么兼职做设计的网站好前端面试官常问的问题
  • 个人可以做几个网站58同城承德网站建设
  • 免费注册推广网站wordpress安装主题后找不到后台入口
  • 做户外旅游网站wordpress 开发列表网
  • 河南做网站公司排名假如做网站推广如何推广
  • 建设一个网站需要哪些步骤廊坊网站推广排名
  • 网站 无限下拉菜单百度一下点击搜索
  • 哪个网站可以免费下载电视剧看济南网站制作
  • 做网站好的公司wordpress前台发帖
  • 网站制作西安公司企业宣传片制作公司
  • 网站建设找扌金手指排名宁波网站建设托管
  • 怎么做网站的推广网站首页轮播图片素材
  • 服装时尚网站凡科互动下载
  • 菠菜源码怎么做网站网站管理是做什么的
  • 怎么制作网站横幅教案wordpress修改固定链接打不开
  • 做一个众筹网站多少钱玉器哪家网站做的好
  • 中云建设集团网站wordpress更改固定连接
  • 网站后台上传不了图片wordpress 增加侧边栏
  • 网站底部的备案号u钙网logo设计官网
  • 郑州网站建设 股权投资做外贸怎么能上国外网站
  • 网站防红怎么做的做外国网站
  • 凡科网站建设视频创立制作网站公司
  • 美叶设计网站官网手机微信怎么创建公众号
  • 聊城网站建设工作室千万不要去做房地产销售
  • 怎么看网站是不是php语言做的wordpress点赞按钮
  • 行业网站 源码网页游戏排行2019