1.单线程和多线程的区别?

你早上上班,正要打卡的时候,手机响了。。你如果先接了电话,等接完了,在打卡,就是单线程。
如果你一手接电话,一手打卡。就是多线程。
这两件事的结果是一样的。。你接了电话且打了卡。

(1)最常见的一个线程例子:

package com.ggx.thread;
public class OnlyThread{public static void main(String[] args){System.out.println("我就是一个线程");}
}

当程序启动运行时,就自动产生一个线程,主方法main就在这个主线程上运行。我们的程序都是由线程来执行的。

(2)控制该线程的行为

package com.ggx.thread;public class OnlyThread {@SuppressWarnings("static-access")public static void main(String[] args) {Thread thread = Thread.currentThread();// 获取当前线程的引用(这里并没有创建新的线程)thread.setName("我是孤零零的一个线程");// 设置当前线程名称System.out.println(thread.getName() + ":正在运行");for (int i = 0; i <= 5; i++) //当前线程循环睡眠{try {System.out.println(thread.getName()+"第:" + i+"次睡眠,当前时间"+System.currentTimeMillis());thread.sleep(5000);//让当前线程睡眠五秒钟System.err.println(thread.getName()+"第:" + i+"次觉醒,当前时间"+System.currentTimeMillis());thread.sleep(1000);//这里是为了方便区分控制台的输出,因为两次间隔毫秒数相同,打印的顺序会有错乱让线程睡了一秒,这样输出顺序容易观察System.out.println();//换行} catch (InterruptedException e) {System.out.println(thread.getName()+"异常");e.printStackTrace();}}}
}
</span>

程序运行结果:

我是孤零零的一个线程:正在运行
我是孤零零的一个线程第:0次睡眠,当前时间1439734065648
我是孤零零的一个线程第:0次觉醒,当前时间1439734070663

我是孤零零的一个线程第:1次睡眠,当前时间1439734071666
我是孤零零的一个线程第:1次觉醒,当前时间1439734076668

我是孤零零的一个线程第:2次睡眠,当前时间1439734077670
我是孤零零的一个线程第:2次觉醒,当前时间1439734082673

我是孤零零的一个线程第:3次睡眠,当前时间1439734083675
我是孤零零的一个线程第:3次觉醒,当前时间1439734088687

我是孤零零的一个线程第:4次睡眠,当前时间1439734089690
我是孤零零的一个线程第:4次觉醒,当前时间1439734094694

我是孤零零的一个线程第:5次睡眠,当前时间1439734095696
我是孤零零的一个线程第:5次觉醒,当前时间1439734100711

当程序启动运行时,就自动产生一个线程,主方法main就在这个主线程上运行。我们的程序都是由线程来执行的。

线程在建立后并不马上执行run方法中的代码,而是处于等待状态。线程处于等待状态时,可以通过Thread类的方法来设置线程各种属性,如线程的优先级(setPriority)、线程名(setName)和线程的类型(setDaemon)等。

注意:不能对已经启动的线程再次调用start()方法,否则会出现java.lang.IllegalThreadStateException异常。

java单线程和多线程的区别相关推荐

  1. 单线程与多线程的区别

    程序是什么? ​ 程序是由源代码生成的可执行应用. 什么是进程? ​ 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源. 而一个进程又是由多个线程所组成的. 什 ...

  2. 单线程、多线程的区别

    程序.进程.线程 程序:由源代码生成的可执行应用. (例如:QQ.app) 进程:一个正在运行的程序可以看做一个进程,(例如:正在运行的QQ警示一个劲曾),进程拥有独立运行所需要的全部资源 线程:程序 ...

  3. Java单线程与多线程

    1.什么是线程? 在我们了解单线程和多线程之前,我们必须搞清楚什么是进程. 一个运行起来的程序就是一个进程! 那程序又是什么呢? 对程序的通俗定义就是:一段可执行的代码. 当我们执行一段Java程序时 ...

  4. 理解单线程和多线程的区别

    单线程和多线程 首先我们都知道线程是隶属于进程的,单线程就是程序中只有一个线程,多线程就是程序中有多个线程.通过连个例子理解多线程和单线程. (一)单线程 创建包:package com.ffyc.j ...

  5. 快速理解Java单线程和多线程比较

    单线程是一个一个线程顺序执行,一个线程只有当前一个线程执行完之后才能执行.这种方法可以会导致当某个线程等待响应的时间特别长时,下一个线程需要一直等待,而这时CPU处于空闲. 多线程是一个时间段一个时间 ...

  6. python单线程和多线程的区别

    多线程与单线程的区别 1.生活举例 你早上上班,正要打卡的时候,手机响了..你如果先接了电话,等接完了,在打卡,就是单线程. 如果你一手接电话,一手打卡.就是多线程,2件事的结果是一样的..你接了电话 ...

  7. 什么是单线程和多线程,单线程与多线程的区别

    什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源. 而一个进程又是由多个线程所组成的. 什么是线程? 线程是程序中的一个执行流,每个线程都有自己的 ...

  8. 单线程和多线程的区别_谷歌下载东西超慢?开启Chrome多线程下载,下载速度提升10倍+...

    用谷歌浏览器下载速度慢,浏览器采用的是单线程下载,"一人难敌四手"的浏览器自然斗不过多线程了.所以说浏览器想要提高下载速度,就得采用多线程的下载方式,不过到目前为止,Chrome多 ...

  9. 单线程和多线程的区别

    前端精髓 每日为你推送 假设业务场景中有一组互不相关的任务需要完成,现行的主流方法有以下两种. 单线程串行依次执行. 多线程并行完成. 如果创建多线程的开销小于并行执行,那么多线程的方式是首选的.多线 ...

最新文章

  1. Jzoj4747 被粉碎的线段树
  2. Linux进程通信中IPC对象——IPC_PRIVATE与ftok
  3. BIM机器人来袭、你害怕了吗
  4. JSP简单练习-使用JDOM创建xml文件
  5. Android 中单选框或复选框点击其中一个,其余取消操作
  6. Java的二十三种设计模式(建造者模式(Builder))
  7. Android开发之打开指定APP | 打开APP任意页面的方法
  8. 交友软件上的两种网友类型......
  9. python 登陆微博 被删除 token_爬取微博信息,使用了cookie仍然无法登录微博
  10. 本次安装visual studio所用的安装程序不完整_阁楼影院安装案例
  11. php文件改后缀,php如何修改文件后缀名
  12. Qt——多语言程序设计
  13. 彻底清除mplay.com与mplay.exe病毒
  14. Linux系统中xz命令用法详解(压缩和解压缩)
  15. mac屏保怎么不显示,mac屏保怎么关闭
  16. java 图片加水印不失真_java实现图片加水印效果
  17. RN设置宽高100%
  18. [M1]Daily Scum 9.29
  19. 项目一 认识Linux 操作系统
  20. Linux shell 脚本编程-实战篇(三)

热门文章

  1. [AHK]获取同花顺客户端中正在浏览的股票代码
  2. 【单片机IO口四种模式】
  3. 【jQuery案例】 自动轮播图
  4. 广州工商学院计算机系系章,广州工商学院三水校区宿舍大起底
  5. Satis搭建composer私有库(自定义下载目录)
  6. 澳大利亚新规导致含纽扣电池产品被下架的原因解析
  7. PR第一次培训笔记(新建项目和序列 预设)
  8. 【Vue 实战】 生成二维码
  9. linux内核的版本号是如何标识的,Linux内核版本号命名的规则
  10. 小米公司招聘前端--待遇不错