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

浙江建设职业继续教育学院网站动态ip建网站

浙江建设职业继续教育学院网站,动态ip建网站,玉林市网站开发公司电话,洛阳市宜阳建设局网站大家好#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/14317703/

相关文章:

  • 湛江市seo网站设计哪里好梅花手表网站
  • 做流量哪个网站好wordpress无法连接ftp服务器
  • .net 大型网站开发技术网易考拉的网站建设
  • 网站做平台有哪些农安县建设局网站
  • 网站开发笔记本要多少钱的wordpress的背景图片
  • 怎么让人理解网站建设百度网站网址是多少
  • 青岛有没有做网站的怎样修改手机网站首页
  • 做国外的网站有什么不用钱的健康陕西app管理端最新版
  • 怎么申请免费的网站线上营销的优势和劣势
  • 模板网站免费自己做网站去哪买服务器
  • 沈阳网站seo排名公司网站建设阿里云搭建个人网站
  • 网站名和域名能一样吗建设网站怎么赚钱的
  • 网站建设费的税率喀什百度做网站多少钱
  • 织梦门户网站游戏网站建设赚钱
  • 网站创建设计SEO优化象客wordpress搭建像册
  • 做淘宝客网站违法吗景安服务器安装wordpress
  • 阿里巴巴网站优化怎么做外贸营销网站怎么建设
  • 视频网站视频预览怎么做网上花店网页设计代码
  • 诸城网站建设wordpress图片文件目录
  • 怎么让百度收录你的网站网络营销的内涵
  • 怎么用txt做网站做平面设计的网站有哪些
  • 小说网站代理wordpress登录接口
  • 怎样做影视网站不侵权网页链接提取工具
  • 官方网站建设银行wordpress博客是什么
  • 利用模板建网站企业邮箱注册申请步骤
  • 广州网站建设鞍山wordpress 加logo
  • wap企业网站模板永康营销型网站建设
  • 自己做的网站什么时候可以赚钱食品网站建设的目的
  • 免费ui设计网站论坛seo教程
  • 山东网站优化公司竹妃怎么在公众号里做网站