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

浙江建设职业继续教育学院网站软件工程专业学什么

浙江建设职业继续教育学院网站,软件工程专业学什么,公司网站建设的会计分录,二次元wordpress博客大家好#xff0c;通过java进阶—多线程#xff0c;我们知道的什么是进程#xff0c;什么是线程#xff0c;以及线程的三种创建方式的选择 今天#xff0c;我们来看看线程的基础操作 start() 开启线程 public class Demo implements Runnable {Overridepublic void run…大家好通过java进阶—多线程我们知道的什么是进程什么是线程以及线程的三种创建方式的选择 今天我们来看看线程的基础操作 start() 开启线程 public class Demo implements Runnable {Overridepublic void run() {for (int i 0; i 3; i) {System.out.println(线程开启我就跑);}}public static void main(String[] args) {Demo demo new Demo();Thread thread new Thread(demo);//开启线程 thread.start();} }currentThread() 返回当前线程 currentThread() 获取了当前线程里面可以获取当前线程的名字 1. getName(): 获取当前线程名字2. getId(): 获取当前线程名字public class Demo implements Runnable{Overridepublic void run() {System.out.println(当前线程 Thread.currentThread());System.out.println(当前线程的名字 Thread.currentThread().getName());System.out.println(当前线程的Id Thread.currentThread().getId());}public static void main(String[] args) {Demo demo new Demo();Thread thread new Thread(demo);thread.start();} }为什么是 默认是 Thread-0 是因为 Thread类里面的一个空参构造函数 调用 nextThreadNum() 参数是从0 开始自增的 setName() 设置线程的名字 觉得默认的 thread-0 名字不好没关系我们可以自己设置 名字 public class Demo implements Runnable{Overridepublic void run() {System.out.println(当前线程 Thread.currentThread());System.out.println(当前线程的名字 Thread.currentThread().getName());}public static void main(String[] args) {Demo demo new Demo();Thread thread new Thread(demo);thread.setName(我设置的线程名字);thread.start();} } yield() 线程让步释放当前CPU的执行 来看一个例子主线程mian同 thread-0 线程 同时去执行 循环去抢Cpu的执行权我们在thread-0 线程加上 如果 循环出的值 %2 0 是偶数它就释放执行权 public class Demo implements Runnable {Overridepublic void run() {for (int i 0; i 50; i) {System.out.println(Thread.currentThread().getName() : i);if (i % 2 0) {Thread.yield();}}}public static void main(String[] args) {Demo demo new Demo();Thread thread new Thread(demo);thread.start();for (int i 0; i 50; i) {System.out.println(Thread.currentThread().getName() : i);}} }当然释放执行权并不是一定也是有概率的有可能下一个执行权还是 thread-0 join() 让当前线程进入阻塞状态被join线程执行完再执行 举个例子比如还是前面 thread-0 跟 主线程 抢占cpu执行权现在我们在主线程中加一个 限制 条件当主线程 循环到 10 时让主线程进入阻塞状态thread-0优先执行完主线程再开始执行 public class Demo implements Runnable {Overridepublic void run() {for (int i 0; i 50; i) {System.out.println(Thread.currentThread().getName() : i);if (i % 2 0) {Thread.yield();}}}public static void main(String[] args) {Demo demo new Demo();Thread thread new Thread(demo);thread.start();for (int i 0; i 50; i) {System.out.println(Thread.currentThread().getName() : i);if(i10) {try {thread.join();} catch (InterruptedException e) {e.printStackTrace();}}}} }通过 thread-0线程去调用join方法 让 thread-0优先执行 可以看到 mian到了 10 时就停止了等thread-0 执行完再开始 stop 强制结束当前线程方法已经过时不建议使用 开发中不要用 sleep毫秒值让当前线程进入休眠时间时间结束继续执行 public class Demo implements Runnable {Overridepublic void run() {for (int i 0; i 50; i) {System.out.println(Thread.currentThread().getName() : i);if (i %20) {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}}public static void main(String[] args) {Demo demo new Demo();Thread thread new Thread(demo);thread.start();for (int i 0; i 50; i) {try {thread.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() : i);}} }当阻塞时间结束也并不是直接执行也得dengCPU分配给你。你再执行在阻塞时间内cpu 想分配资源给你都不行 isAlive() 判断线程是否终止这个线程是不是还活着 public class Demo implements Runnable {Overridepublic void run() {for (int i 0; i 50; i) {System.out.println(Thread.currentThread().getName() : i);if (i %20) {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}}public static void main(String[] args) {Demo demo new Demo();Thread thread new Thread(demo);thread.start();for (int i 0; i 50; i) {try {thread.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() : i);}System.out.println(线程是否还存活thread.isAlive());} }执行结果 解析看的懂得小伙伴可以略过 我们在主线程中直接加了 join, 所以得等主线程执行完成再执行主线程由于我们是在主线程之后加的判断线程 thread-0是否存活这时候 thread-0 已经执行完任务了生命周期结束所以此时的thread-0 已经终止了 以上便是线程最常用方法了
http://www.hkea.cn/news/14460023/

相关文章:

  • 政务公开网站开发厦门市建设局
  • 杭州品牌网站设计营销网站的设计与实现
  • 办事处网站建设鲜花外贸网站建设
  • 做自媒体资源的网站2015年做那些网站能致富
  • 多城市二手车网站源码wordpress高级自定义字段
  • 网站建设实训建议横沥网站仿做
  • phpcms 外贸网站模板豆瓣fm wordpress
  • 黄楼企业建站流程做天然文化石的网站
  • 如何使用wordpress制作网站微信红包封面分销平台
  • 188网站开发国内vps做网站要备案吗
  • 成都筑巢网站建设wordpress语言更换
  • 重庆装修公司排行榜一览表seo织梦网站建设步骤
  • 海口建站模板系统中国建设监理协会化工监理协会网站
  • 苏州吴江做网站公司汕头网络推广教程
  • 阿里巴巴网站优化怎么做简述网站开发主要步骤
  • 盘锦做网站谁家好做视频网站视频用什么插件
  • 石家庄网站建设云图网络商城推广营销
  • 江西建设银行分行网站安卓系统开发平台
  • 网站用什么字体wordpress忘记密码
  • Discuz网站制作教程品牌建设和品牌打造对企业的意义
  • 个人做游戏网站娄底网站建设报价
  • 做网站每年包多少流量免费浏览器
  • 网站html地图制作免费模板简历网站
  • 咸阳建设局网站做网站必须哪几个软件
  • 网站手机版开发搭建网站赚钱
  • 泉州网站建设费用宁波企业做网站
  • 公司网站建设与维护方案做冲压件加工有什么好网站
  • 心理咨询网站建设论文域名及密码登录域名管理网站
  • 泉州手机网站建设网站建设的广告语
  • 在线包装设计软件站长seo