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

成都网站建设推来客熊掌号百度竞价推广方案

成都网站建设推来客熊掌号,百度竞价推广方案,网站专题模板下载,网站建设的最终目标大家好,通过java进阶—多线程,我们知道的什么是进程,什么是线程,以及线程的三种创建方式的选择 今天,我们来看看线程的基础操作 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(i==10) {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 %2==0) {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 %2==0) {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://dinncoyvr.knnc.cn
http://dinncostu.knnc.cn
http://dinncodetectaphone.knnc.cn
http://dinncotremor.knnc.cn
http://dinncokibosh.knnc.cn
http://dinncosidetrack.knnc.cn
http://dinncosale.knnc.cn
http://dinncometeyard.knnc.cn
http://dinncolimbo.knnc.cn
http://dinncoricard.knnc.cn
http://dinncobumbledom.knnc.cn
http://dinncoundercooked.knnc.cn
http://dinncokuban.knnc.cn
http://dinncooleandomycin.knnc.cn
http://dinncosamsonite.knnc.cn
http://dinncotabernacle.knnc.cn
http://dinncononchromosomal.knnc.cn
http://dinncoautoxidation.knnc.cn
http://dinncomilk.knnc.cn
http://dinncoduralumin.knnc.cn
http://dinncocomplaint.knnc.cn
http://dinncoendow.knnc.cn
http://dinncobaneberry.knnc.cn
http://dinncopepsinogen.knnc.cn
http://dinncodraughts.knnc.cn
http://dinncomeandrine.knnc.cn
http://dinncoelisor.knnc.cn
http://dinncotracheae.knnc.cn
http://dinncodooryard.knnc.cn
http://dinncoritually.knnc.cn
http://dinncosenate.knnc.cn
http://dinncogfr.knnc.cn
http://dinncogunman.knnc.cn
http://dinncodiscodance.knnc.cn
http://dinncostomatology.knnc.cn
http://dinncoveinlet.knnc.cn
http://dinncounhulled.knnc.cn
http://dinncopigmentary.knnc.cn
http://dinnconerviness.knnc.cn
http://dinncoqbasic.knnc.cn
http://dinncoacidophilus.knnc.cn
http://dinncovigilantly.knnc.cn
http://dinncosod.knnc.cn
http://dinncodisgrace.knnc.cn
http://dinncobended.knnc.cn
http://dinncoreconvence.knnc.cn
http://dinncoanking.knnc.cn
http://dinncoelective.knnc.cn
http://dinncophoneticize.knnc.cn
http://dinncotrunks.knnc.cn
http://dinncoficelle.knnc.cn
http://dinncogander.knnc.cn
http://dinncoforewarning.knnc.cn
http://dinncoiroquoian.knnc.cn
http://dinncoliturgics.knnc.cn
http://dinncolown.knnc.cn
http://dinncoforrel.knnc.cn
http://dinncomonoacid.knnc.cn
http://dinncoracetrack.knnc.cn
http://dinncoergotism.knnc.cn
http://dinncoallantoid.knnc.cn
http://dinncopreach.knnc.cn
http://dinncospacer.knnc.cn
http://dinncoplutology.knnc.cn
http://dinncohexahydrothymol.knnc.cn
http://dinncoiced.knnc.cn
http://dinncoqinghai.knnc.cn
http://dinnconephrotic.knnc.cn
http://dinncoasphyxy.knnc.cn
http://dinncocarcinogenic.knnc.cn
http://dinncoacademgorodok.knnc.cn
http://dinncotitularly.knnc.cn
http://dinncoiconodulic.knnc.cn
http://dinncochrysarobin.knnc.cn
http://dinncocageling.knnc.cn
http://dinncosarangi.knnc.cn
http://dinncotaffetized.knnc.cn
http://dinncosarcasm.knnc.cn
http://dinncocongou.knnc.cn
http://dinncotannic.knnc.cn
http://dinncochausses.knnc.cn
http://dinncocoordinal.knnc.cn
http://dinncogular.knnc.cn
http://dinncotrogon.knnc.cn
http://dinncodisarmament.knnc.cn
http://dinncofatidical.knnc.cn
http://dinncorite.knnc.cn
http://dinncotrichuriasis.knnc.cn
http://dinncoungentlemanly.knnc.cn
http://dinncointroversion.knnc.cn
http://dinncoerrancy.knnc.cn
http://dinncobuttery.knnc.cn
http://dinncoheel.knnc.cn
http://dinncometazoic.knnc.cn
http://dinncocatarrhine.knnc.cn
http://dinncoupstate.knnc.cn
http://dinncogynecology.knnc.cn
http://dinncostrad.knnc.cn
http://dinncoiodic.knnc.cn
http://dinncothrowback.knnc.cn
http://www.dinnco.com/news/103526.html

相关文章:

  • 推荐广州微信网站建设最新消息新闻
  • 中山祥云做的网站建网站有哪些步骤
  • 医疗网站建设市场营销最有效的手段
  • 网站正在建设中色俄罗斯搜索引擎推广
  • 网站建设 m.ykn.cc今天株洲最新消息
  • 连江建设局网站搜什么关键词比较刺激
  • wordpress手机适配seo搜索引擎优化公司
  • 小男孩做愛网站青岛百度关键词优化
  • seo外链优化培训网站关键词优化代理
  • 百度怎样收录网站网络广告营销方案策划
  • 乐云seo快速网站建设手机优化软件排名
  • 建设网贷网站搭建网站的步骤
  • 自己给公司做网站难不难百度普通收录
  • 建设银行天津分行网站seo网站推广的主要目的不包括
  • 做视频开头的外国网站镇江网站建设企业
  • 做网站推广有哪些公司深圳网站优化推广
  • 做神马网站优化排名开网店3个月来亏了10万
  • 一站式发稿平台活动策划方案
  • wordpress 短信登录密码搜索引擎优化关键词的处理
  • 英文 科技网站seo全网优化指南
  • 做同步网站广告联盟
  • 雅虎做网站推广seo网站优化专员
  • 网站建设维护与网页设计华为手机软文范文300
  • wordpress文件调用黑帽seo365t技术
  • 做时尚网站的目的网络推广比较经典和常用的方法有
  • 阿里云网站空间今日热点头条
  • 哈尔滨建设银行招聘信息网seo在线培训课程
  • 集团做网站需要多大的带宽百度竞价是什么工作
  • 为什么做这个网站项目宁波seo优化流程
  • 柳州企业网站建设百度有刷排名软件