为了账号安全,请及时绑定邮箱和手机立即绑定

细说多线程之Thread VS Runnable

难度初级
时长 1小时 0分
学习人数
综合评分9.63
168人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 细说多线程之Thread VS Runnable——守护线程理论知识 I Java线程分两类: 1.用户线程:运行在前台,执行具体任务(例如:主线程,连接网络的子线程等)。 2.守护线程:运行在后台,为其他前台线程服务, 注意:一旦所有用户线程结束运行,守护线程会随JVM一起结束工作;最常见守护线程:垃圾回收线程;数据库连接池监测线程;JVM启动的监测线程。 Ps:如何设置守护线程:可以通过调用Thread类的setDaemon(ture)方法来设置当前的线程为守护线程。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 主线程,等待键盘输入,守护线程向文件写内容 public void run(){ writetofile(); } private void writetofile(){ file filename = new file(lujin); outputstream os new fileoutputstream(filename,true); int count = 0; while(count<88){ os.write(("\r\nword"+count).getbytes()); system.outprintln("守护线程"+thread.currentthread().getname()+"向文件写入word"+count++); thread.sleep(1000); //休眠 } } new 对象 //创建线程 thread(对象) thread.start(); scanner sc = new scanner(system.in); //键盘输入,终止主线程 sc.next();
    查看全部
  • 两种方式的比较:
    查看全部
  • 针对Thread和Runnable对于同一资源处理: class MyThread extends Thread{} class MyRunnable implements Runnable{} public static void main(String[] args){ MyThread t1 = new MyThread(); MyThread t2 = new MyThread(); MyThread t3 = new MyThread(); //注意:此时t1,t2,t3是堆内存中实例出的三个对象,对于它们所有属性也独立的 MyRunnable r = new MyRunnable(); Thread t1 = new Thread(r); Thread t2 = new Thread(r); Thread t3 = new Thread(r); //注意:t1,t2,t3虽然是堆中的三个不同对象,但是此时的r是一个,所以三个线程引用r中的资源也是共有的 } 由此可以看出:Runnable可以实现资源共享,而Thread资源独立
    查看全部
  • 创建线程的两种方式的比较
    查看全部
  • 细说多线程之Thread VS Runnable——守护线程理论知识 II Ps:如果用户线程把CRUD等操作给守护线程,相当于用户线程退出了,那么按照守护线程原则:守护的对象不存在了,自己就没必要存在,会随着一起结束。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 线程的生命周期,线程从无到有,一共经历几种不同的状态:<br><br> 1:创建:新建一个线程对象,如:Thread threa d= new Thread();<br> 2:就绪:创建了线程对象后,调用了线程的start()方法(注意:此时线程只是进入了线程队列,等待获取CPU服务,具备了运行的条件,但并不一定已经开始运行了)<br> 3:运行:处于就绪状态的线程,一旦获取了CPU资源,便进入到运行状态,开始执行run()方法里面的逻辑<br> 4:终止:线程的run()方法执行完毕,或者线程调用了stop()方法,线程便进入了终止状态<br> 5:阻塞:一个正在执行的线程在某些情况下,由于某些原因而暂时让出了CPU资源,暂停了自己的执行,便进入了阻塞状态,如调用了sleep()方法(当sleep()方法的timeout结束,阻塞解除,线程重新回到就绪状态,等待CPU资源) 将人比作线程就容易理解多了,比喻成排队上厕所,也比较容易理解。当然,之所以,会这样原因在于资源不够,所以,会产生排队现象、阻塞现象。
    查看全部
  • 我觉得老师基本功不扎实,就全是共享变量,每个线程也有自己的工作内存和一个主内存一说,如果共享数据没有及时同步还是可能会出问题的。
    查看全部
    1 采集 收起 来源:应用揭秘

    2015-09-30

  • 两种方式的比较: Runnable方式可以避免Thread类由于Java单继承带来的缺陷; Runnable的代码可以被多个线程(Thread实例)共享,适合于多个线程处理同一资源的情况
    查看全部
  •  Runnable 方式可以避免Thread方式由于Java单继承特性带来的缺陷

    Runnable的代码可以被多个线程(Thread实例)共享,适合于多个线程处理同一资源的情况。

    查看全部
  • 设置守护线程的注意事项

    查看全部
  • 线程的生命周期

    查看全部
  • 废话太多,讲的很模糊,同一资源竟然是runnable,是票源,好吧?
    查看全部
    1 采集 收起 来源:课程总结

    2015-03-14

  • 位置:jdk/bin/jstack.exe 状态信息解读: tid,nid:帮我们获得cpu占有率很高的线程。 -l:可以获得额外的锁信息。 prio:代表优先级。 线程状态: New线程创建;Runnable即将或正在运行的线程,Terminated对应线程终止。 Blocked、Waiting、Timed_Waiting对应阻塞状态: 1.Blocked:一个线程在等待监视器的锁时处于的状态,如被sychronized阻塞的线程。 2.Waiting:一个线程在无限期等待另一个线程执行任务,调用join方法时。 3.Timed_Waiting:等待另一个线程执行任务,但是有时间限制,如sleep方法。
    查看全部
  • 守护线程在一段时间内不停地在某个文件内写数据;而主线程会阻塞等待来自键盘中的输入;一旦主线程获取到键盘中的输入,这时候,主线程的阻塞会解除掉,主线程继续运行,直到结束;而一旦主程序结束(用户线程不存在了),那么守护线程失去守护对象,自然而然随着结束运行(即使文件写入操作还未完成)
    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
学习本课程前,你需要熟练掌握Java的基础语法,熟悉Java中创建线程的两种方式,熟悉Java多线程中常用的一些方法。
老师告诉你能学到什么?
1、多线程创建方式的比较和选择 2、线程的生命周期、守护线程

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!