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

买衣服的网站排行榜网站添加字体

买衣服的网站排行榜,网站添加字体,邵阳棋牌软件开发,点击颜色更换网站主题线程创建与使用 严格来说,Java就只有一种方式可以创建线程,那就是通过new Thread().start()创建。而所谓的Runnable、Callable……对象,这仅仅只是线程体,也就是提供给线程执行的任务,并不属于真正的Java线程&#xff…

线程创建与使用

严格来说,Java就只有一种方式可以创建线程,那就是通过new Thread().start()创建。而所谓的Runnable、Callable……对象,这仅仅只是线程体,也就是提供给线程执行的任务,并不属于真正的Java线程,它们的执行,最终还是需要依赖于new Thread()……

方式一:继承 Thread 类
  • 当一个类继承了 Thread 类,就可以把它当做一个线程。
  • 一般会重写run()方法,写上自己的业务代码。
  • Thread 类中的run()方法实际上是实现了 Runnable 接口中的run()方法。
    public class ExtendsThread extends Thread {@Overridepublic void run() {System.out.println("继承Thread类的线程:" + Thread.currentThread().getName());}public static void main(String[] args) {new ExtendsThread().start();//启动线程}
    }
    
  • 当main线程启动一个子线程Thread-0,主线程不会阻塞,会继续执行,且主线程和子线程交替执行。
  • start()方法会执行一个start0()方法,调用start0()方法后该线程不一定立马执行,只是将变成了可运行状态。具体什么时候执行,取决于CPU,由CPU统一调度。真正实现多线程效果的是start0(),不是run()。
方式二:实现Runnable 接口
  • java是单继承的,在某些情况下一个类可能已经继承了某个父类,这时再用继承
    Thread类的方式来创建线程显然不可能了。
    public class ImplementsRunnable implements Runnable {@Overridepublic void run() {System.out.println("2......");}public static void main(String[] args) {ImplementsRunnable runnable = new ImplementsRunnable();new Thread(runnable).start();}
    }
    
  • 代理模式:Thread.start()->Thread.start0()->Thread.run()->Thread.target.run()->runnable.run()。这里将runnable作为参数传给了Thread中的target属性。
  • 实现 Runnable 接口的方式更加适合多个线程共享一个资源的情况。
未完待续。。。

线程常用方法

setName(String name)	//设置线程名称,使之与参数name相同
getName()	//返回该线程的名称
start()		//使该线程开始执行。Java虚拟机底层调用该线程的start0()方法
run()		//调用线程对象run方法;
setPriority(int priority)	//更改线程的优先级
getPriority()	//获取线程的优先级
sleep(long millisec)			//在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)
interrupt()		//中断线程,停止休眠
yield()			//让出cpu,暂停当前正在执行的线程对象,并执行其他线程。但礼让的时间不确定,所以也不一定礼让成功。
join()			//线程的插队。插队的线程一旦插队成功,则肯定先执行完插入的线程所有的任务。

线程终止

  • 当线程完成任务后,会自动退出。
  • 还可以通过使用变量来控制run()方法退出的方式停止线程,即通知方式

用户线程与守护线程

  • 用户线程:也叫工作线程,任务执行完结束或以通知方式结束。
  • 守护线程:一般是为工作线程服务的,当所有的用户线程结束,守护线程自动结束。常见的守护线程:垃圾回收机制。

线程的生命周期

  • Java 线程在其生命周期中的任何时刻只可能处于下面 6 种不同状态的其中一个。
    线程状态图
  • NEW:初始状态,线程被创建出来但没有被调用 start() 。
  • RUNNABLE:运行状态,线程被调用了 start()等待运行的状态。
  • BLOCKED:阻塞状态,需要等待锁释放。
  • WAITING:等待状态,表示该线程需要等待其他线程做出一些特定动作(通知或中断)。
  • TIME_WAITING:超时等待状态,可以在指定的时间后自行返回而不是像 WAITING 那样一直等待。
  • TERMINATED:终止状态,表示该线程已经运行完毕。

文章转载自:

http://0zqzZCAG.pnbLs.cn
http://zyBvJ706.pnbLs.cn
http://9NGgvn3o.pnbLs.cn
http://QzW3dSR3.pnbLs.cn
http://9apziVLM.pnbLs.cn
http://NNIUvrhr.pnbLs.cn
http://uhQnmAt5.pnbLs.cn
http://0eJUcmnS.pnbLs.cn
http://QBtdUPYM.pnbLs.cn
http://VJKnWwGI.pnbLs.cn
http://Fj0pFYCk.pnbLs.cn
http://9v9o8bCe.pnbLs.cn
http://ELfJkTC6.pnbLs.cn
http://YUpWYego.pnbLs.cn
http://1uLuga0q.pnbLs.cn
http://Ys8KFsrk.pnbLs.cn
http://dMjLobU8.pnbLs.cn
http://ypFFr6QI.pnbLs.cn
http://5G4qCWa7.pnbLs.cn
http://Fqa3dCth.pnbLs.cn
http://1eZ0ME2b.pnbLs.cn
http://8ijHLNq2.pnbLs.cn
http://0yOk7wUB.pnbLs.cn
http://XeDxECqo.pnbLs.cn
http://g60b5crM.pnbLs.cn
http://F8NsUxpy.pnbLs.cn
http://tzzZM005.pnbLs.cn
http://AKuVDggs.pnbLs.cn
http://0xdseGHO.pnbLs.cn
http://dTZHuWdN.pnbLs.cn
http://www.dtcms.com/wzjs/706012.html

相关文章:

  • 韶关网站建设第一品牌石狮网站建设制作
  • 有没有做丝网的网站呀河南企业网站推广
  • 诚信通网站怎么做外链wordpress后台无法登陆
  • 学校网站建设xml网站建设深圳官网
  • 网站建设业务怎么做上海装修公司十大排名
  • 淄博网站建设价格网站外包项目
  • 做平面免费接单网站报价单通用模板
  • 做视频好用的素材网站济南网站建设公司官网
  • 做宣传册网站澧县网页定制
  • 信息化建设 网站建设等方面网站建设学院
  • 设计师网站建设wordpress 转 app
  • 专门做游戏的网站wordpress软件站
  • 做360网站中保存的图片存在哪里的wordpress百度熊掌号
  • 上海手机网站建设公司网站购物车功能怎么做
  • 个人商城网站源码百度网站推广费用多少钱
  • 常州免费网站建设wordpress8小时前
  • 福建工程网站建设团队莱芜论坛杂谈
  • 四川省乐山市建设银行网站山东省建设工程管理局网站
  • 网站建设系统宽屏网站源码
  • 公司网站被抄袭python网页版
  • wordpress建站配置wordpress适合做什么网站吗
  • 如何搭建php网站关于网站建设申请报告
  • 响站怎么建设网站青岛网站设计皆挺青岛
  • ktv网站模板金华开发区人才网
  • 上海安全建设协会网站网络推广专员的岗位职责是
  • 如何给一个网站做定时的更新成都住建局官网首页
  • 外国网站接单做翻译微信公众平台开发流程
  • 网站建设中 页面网络营销设计公司
  • 微网站 百度地图网站建设价格套餐
  • 我要注册账号seo的网站建设