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

网站推广费用入什么科目网上服务大厅12333

网站推广费用入什么科目,网上服务大厅12333,百度竞价广告点击器,编程培训机构排名前Java多线程-Thread类的run方法 一、背景二、研究Thread类的start()源码1、源码#xff08;比较短#xff0c;贴一下#xff09;1.1 重点#xff1a;start0(); 三、研究Thread类的run()源码1、源码#xff08;很关键#xff0c;必须贴#xff09; 四、创建线程的2种方式1… Java多线程-Thread类的run方法 一、背景二、研究Thread类的start()源码1、源码比较短贴一下1.1 重点start0(); 三、研究Thread类的run()源码1、源码很关键必须贴 四、创建线程的2种方式1、继承Thread并覆写run方法2、传入一个实现了run方法的Runnable接口的实现类 五、到底执行哪个run方法 一、背景 在Java中要使用多线程很显然先要创建线程。Java将线程抽象为Thread类。创建线程的第一步new Thread()创建好Thread对象后接下来就是要启动线程并执行线程需要做的事情Thread对象.start(); 1首先会启动线程 2然后调用run方法(); 二、研究Thread类的start()源码 1、源码比较短贴一下 public synchronized void start() {if (threadStatus ! 0)throw new IllegalThreadStateException();group.add(this);boolean started false;try {start0();started true;} finally {try {if (!started) {group.threadStartFailed(this);}} catch (Throwable ignore) {}} }1.1 重点start0(); 源码 private native void start0();是一个本地方法。也很好理解Java的线程是交由操作系统来管理的。 start0()方法是Java中的一个本地方法也就是说它是用其他语言通常是C或C实现的。 其主要逻辑是创建一个新的系统级线程并在新线程上执行run()方法。 Java中的线程是基于操作系统的原生线程实现的而start0()方法主要就是与操作系统进行交互创建和启动新的系统级线程。 具体来说start0()方法的执行逻辑一般包括以下步骤 1申请系统资源创建一个新的系统级线程。 2将Java线程对象与新创建的系统级线程进行关联。 3设置线程的优先级和栈大小等线程属性。 3在新的系统级线程上调用Java线程对象的run()方法。 4如果run()方法执行结束或发生异常清理系统级线程资源。 以上执行逻辑可能因不同的JVM实现和不同的操作系统有所不同具体实现代码可以在JVM的源代码中找到。 三、研究Thread类的run()源码 1、源码很关键必须贴 Override public void run() {if (target ! null) {target.run();} }Thread类public class Thread implements Runnable Runnable的源码 FunctionalInterface public interface Runnable {public abstract void run(); }既然Thread类实现了Runnable接口就要覆写run方法。 target是什么 public class Thread implements Runnable {......private Runnable target;...... }用户可以通过这个构造方法传入target public Thread(Runnable target) {init(null, target, Thread- nextThreadNum(), 0); }四、创建线程的2种方式 通过上面的分析要让线程执行某段逻辑的关键是实现run方法。 有2种方式 1继承Thread并覆写run方法 2传入一个实现了run方法的Runnable接口的实现类 1、继承Thread并覆写run方法 示例 public class PrintEvenThread extends Thread {Overridepublic void run() {// 遍历100以内的偶数for (int i 0; i 100; i) {if (i % 2 0) {System.out.println(Thread.currentThread().getName() : i);}}} }public class PrintOddThread extends Thread {Overridepublic void run() {// 遍历100以内的奇数for (int i 0; i 100; i) {if (i % 2 ! 0) {System.out.println(Thread.currentThread().getName() : i);}}} }public class PrintThreadTest {Testpublic void testTwoPrintThread() {PrintEvenThread printEvenThread new PrintEvenThread();PrintOddThread printOddThread new PrintOddThread();printEvenThread.start();printOddThread.start();} }还可以匿名类的匿名对象的方式 new Thread() {Overridepublic void run() {for (int i 0; i 100; i) {if (i % 2 ! 0) {System.out.println(Thread.currentThread().getName() : i);}}} }.start();2、传入一个实现了run方法的Runnable接口的实现类 示例 匿名类的匿名对象 public class LearnCreateThreadMain3 {public static void main(String[] args) {new Thread(new PrintEven()).start();} }class PrintEven implements Runnable {Overridepublic void run() {for (int i 0; i 10; i) {if (i % 2 0) {System.out.println(i);}}} }还可以匿名类的匿名对象的方式 new Thread(new Runnable() {Overridepublic void run() {for (int i 0; i 100; i) {if (i % 2 ! 0) {System.out.println(Thread.currentThread().getName() : i);}}}}).start();五、到底执行哪个run方法 示例 public class LearnCreateThreadMain4 {public static void main(String[] args) {Hi hi new Hi();new Thread(hi) {Overridepublic void run() {System.out.println(hello~);}}.start();} }class Hi implements Runnable {Overridepublic void run() {System.out.println(Hi~);} }看懂了“三、研究Thread类的run()源码”很容易回答执行的是Thread子类对象的run方法。也就是输出hello~。如果子类没有覆写Thread的run()方法那么执行的代码是 Override public void run() {if (target ! null) {target.run();} }一旦子类覆写了那执行的就是子类的run()方法了。
http://www.hkea.cn/news/14490427/

相关文章:

  • 新手做网站需要多久平台运营推广
  • dw网站模板免费产品网络推广深圳
  • 深圳龙华的学校网站建设html5 wordpress模板
  • 遂宁市网站建设中国国防新闻
  • 揭阳市建设局网站互联网电商板块火箭发射
  • 深圳网站建设方案杭州有哪些做网站的公司好
  • wordpress改logo南宁网站建设seo优化营销制作
  • 计算机网站建设招聘护理专业建设规划
  • 如何防止网站被采集广告设计与制作专业技能
  • 朝阳网站开发联系电话用html5制作个人网站
  • 网站后台管理系统权限wordpress 导航栏顺序
  • 济宁网站建设哪家好北京网站优化 卓立海创
  • 免费自助站制作在线wordpress 积分
  • 帮别人建网站赚钱吗网站首页制作模板
  • 购物网站模块是什么意思网站开发全程实例
  • 朔州建设机械网站动画设计专业好的学校
  • 建筑工程网官方网站wordpress自动评论插件
  • 建造电商网站个人网站设计怎么做
  • 贵州网站开发哪家便宜建设网站分析
  • 外贸网站设计注意事项网页设计代码案例
  • 常州手机网站开发怎么自己做网站服务器
  • 公司做网站的费用记什么科目上海今天最新发布会
  • 网站的联系我们怎么做wordpress 如何升级
  • 网站开发技术背景介绍房产采集网站源代码
  • 广州建网站价格郑州网站建设 云极
  • 英语门户网站织梦源码电脑上怎么运行wordpress
  • 网站推广需求要素做网站 公司 个体
  • 万网公司注册网站邢台企业建站
  • 二级网站内容建设要求百度一键安装
  • 优秀网站建设网页廊坊做网站公司