多线程的本质

1. Thread.yield():

api中解释: 暂停当前正在执行的线程对象,并执行其他线程。

注意:这里的其他也包含当前线程,所以会出现以下结果。

  1. public class Test extends Thread {
  2. public static void main(String[] args) {
  3. for (int i = 1; i <= 2; i++) {
  4. new Test().start();
  5. }
  6. }
  7. public void run() {
  8. System.out.print("1");
  9. yield();
  10. System.out.print("2");
  11. }
  12. }

输出结果: 1122 或者 1212

2. Thread.sleep(long millis):

解释:使当前线程暂停millis所指定的毫秒,转到执行其它线程。

时间: 2024-10-12 19:19:45

多线程的本质的相关文章

Android中的几种多线程实现

有以下几种方式: 1)Activity.runOnUiThread(Runnable) 2)View.post(Runnable) ;View.postDelay(Runnable , long) 3)Handler 4)AsyncTask Android是单线程模型,这意味着Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行,所以你单纯的new一个Thread并且start()是不行的,因为这违背了Android的单线程模型.那么如何用好多线程呢?总结一下: 事件处理的原

Java中多线程技术

***********************************************声明****************************************************** 原创作品,出自 "晓风残月xj" 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/xiaofengcanyuexj). 由于各种原因,可能存在诸多不足,欢迎斧正! *******************************************

代码解说多线程互斥与同步通信问题

参考 张孝详系列 场景 编写一个程序:子线程连说 3 次  " 你愿意吗?" ,接着主线程连续回答 10次 "我愿意" ,然后子线程再说3次"你愿意吗?",主 线程回答"我愿意" 10次 ... 轮流如此往复执行 10次. 分析 "连说 3 次","连续回答" 意味着互斥-主线程执行的时候,子线程不能执行;子线程执行的时候,主线程不能执行. "轮流往复"意味着同步-主

Linux多线程实现及线程同步函数分析

在Linux中,多线程的本质仍是进程,它与进程的区别: 进程:独立地址空间,拥有PCB 线程:也有PCB,但没有独立的地址空间(共享) 线程的特点: 1,线程是轻量级进程,有PCB,创建线程使用的底层函数和进程一样,都是clone 2,从内核看进程和线程是一样的,都有各自不同的PCB 3,进程可以蜕变成线程 4,在LINUX中,线程是最小的执行单位,进程是最小的分配资源单位 查看指定线程的LWP号命令: ps -Lf pid 线程优点: 提高程序并发性 开销小 数据通信,共享数据方便 线程缺点:

多线程爬虫介绍

一个进程里只有一个线程,我们称之为单线程爬虫.单线程爬虫每次只访问一个页面,不能充分利用电脑的网络带宽.一个页面最多也就几百KB,所以爬虫在爬取一个页面的时候,多出来的网速就浪费掉了. 而如果我们可以让爬虫同时访问10个页面,就相当于我们的爬取速度提高了10倍.这个时候就需要使用多线程技术了. 这里有一点要强调一下,Python这门语言在设计上的时候,有一个GIL锁.这个东西让Python的多线程都是伪多线程.本质上还是只有一个线程,但是这个线程每个事情只做几毫秒,做完几秒救保存线程,换做其他事

异步、多线程解惑

关于多线程和异步相信不少人都有疑问,它们之间到底有什么区别呢? 从知乎上看见一个比喻还是比较好理解的: 现在假设整个城市就只有1个火车,1个售票员,每个乘客咨询售票员后需要思考1分钟再决定买哪趟车的票. 异步 在买票的人咨询后,需要思考1分钟,马上靠边站,但不用重新排队,什么时候想清楚可以立马去跟售票员去买票.在该人站在旁边思考的时候,后面的人赶紧上去接着买.这时候队伍是很快的挪动的,没有阻塞,售票员的最大化的效率. 多线程 火车站开n个窗口(但还是只有一个人售票),外面同时排n个队,售票员回答

程序员生存定律--成长路上常见的坑

程序员生存定律这系列的目录在这里:程序员生存定律--目录 喜欢从头瞄的,可以移步. ------------------------------------------------------------------------------- 前面讲到了程序员成为高手需要有一张地图,借助这样一张地图,程序员可以尝试成为架构师.Guru或者纯管理者.但这条路总是不会那么顺畅. 升级练功流的网文中总会给修仙的主人公设置下几大关卡,比如:金丹难成.元神难成.成了元神后还有天人五衰等等.没有这些关口,情

开发者 发展 2 码路指南

码路指南 码路指南:物质驱动与兴趣驱动 但人们这么表达的时候可能并没有意识到常说的这种兴趣是一个不怎么靠得住的驱动力.这种兴趣往往是一种一时的好奇心,而不是与自己性格特质相契合,可以用来给生命解闷的那种兴趣. 总的来看,兴趣可以分为两个层次:一个是浅层次的.比如看到一个游戏比较酷可能想玩玩,看别人写博客,自己也写几篇:另一种则是深层次的.比如:爱因斯坦你不让他思考,他可能感觉活着就没什么意思了. 人和人之间的体力往往相差不大,但智力的差异却往往不可以道里计.所以一个经验丰富的老农半天种一亩地,一

C++0x简讯

关于C++0x核心进展的一组简讯 刘未鹏 /文 C++的罗浮宫(http://blog.csdn.net/pongba) Concepts无疑是C++0x的杀手级特性之中的一个(也许称它“杀手级”另一个原因:杀死新手:)).近期关于concepts的提案最终汇聚了Bjarne Stroustrup和Douglas Gregor领导的两派做法之长,已然有大局渐定的端倪.非常多两派之间一直以来的分歧得到了美丽的折衷:辅以concept_map这样美丽而有用的特性,着实非常有说服力,并且,concep