程序,进程和线程
程序:没有执行的指令序列和相关的数据的集合(如:qq.exe)
如:磁盘上的可执行命令
进程:正在执行的程序,进程占用资源(CPU,Memoary,IO)
线程:是进程中并发执行的过程(共享进程资源)

同步:步调一致的顺序执行,如:上公交车,一个一个的上
异步:步调不一致的同时执行,如:大家一起上卡车

线程:名称->类
Thread 类中包含一个方法 run() 这个方法就是独立运行的过程
Thread 类中还包含方法 start() 用来启动独立运行的run()

创建一并启动个线程:
1、要覆盖Thread类中的run() 方法,提供独立运行的过程
2、调用Thread实例的start() 方法启动 run()过程

线程的状态:
start()
[新建 new] -------------> [可运行(Runnable)] <------>[运行态(Running)]

软件执行时至少执行一遍
========================
线程:
线程状态:
1、new(新建)
2、Runnable
3、Running
4、Block
5、Dided
线程状态管理:
Thread.yield()当前线程让出处理器(离开Running),使当前线程进入Runnable等待
Thread.sleep(times)使当前线程从Running放弃处理器进入Block状态,休眠times毫秒,再返回到Runnable
如果其他线程打断当前线程的Block(sleep),就会发生InterruptedException

后台线程(守护线程,精灵线程)
t1.setDaemon(true);
Java进程的结束:当所有前台线程都结束时,Java进程结束
后台线程,不管是否结束,都被停掉!
线程的优先级
默认有10 优先级,优先级高的线程获得执行的机会多。机会的多少不能通过代码干预。
默认的优先级为 5.
======================================
两种方式创建线程:
1、继承Thread类
a.继承Thread类,覆盖run()方法,提供并发运行的过程
b.创建这个类的实例
c.使用start()方法启动线程
2、实现Runnable接口
a.实现Runnable接口,实现run()方法,提供并发运行的过程
b.创建这个类的实例,用这个实例作为Thread构造器参数创建Thread类。
c.使用start()方法启动线程

class Foo implements Runnable{
public void run(){
//...
}
}
Thread t = new Thread(new Foo());
t.start();

*****************************************

集中线程的写法:

1.

new Thread(){
  public void run(){
    for (int i = 0; i < 5; i++) {
    System.out.println("HelloWorld!");
    }
  }
}.start();

2.

new Thread(new Runnable(){
  public void run(){
  System.out.println("second");
  }
}).start();

CoreJava笔记之线程的更多相关文章

  1. 操作系统学习笔记----进程/线程模型----Coursera课程笔记

    操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进 ...

  2. python笔记9-多线程Threading之阻塞(join)和守护线程(setDaemon)

    python笔记9-多线程Threading之阻塞(join)和守护线程(setDaemon) 前言 今天小编YOYO请xiaoming和xiaowang吃火锅,吃完火锅的时候会有以下三种场景: - ...

  3. java学习笔记15--多线程编程基础2

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...

  4. 笔记-python-多线程-深入-1

    笔记-python-多线程-深入-1 1.      线程池 1.1.    线程池:控制同时存在的线程数量 threading没有线程池,只能自己控制线程数量. 基本有两种方式: 每间隔一段时间创建 ...

  5. JUC源码学习笔记5——线程池,FutureTask,Executor框架源码解析

    JUC源码学习笔记5--线程池,FutureTask,Executor框架源码解析 源码基于JDK8 参考了美团技术博客 https://tech.meituan.com/2020/04/02/jav ...

  6. 0040 Java学习笔记-多线程-线程run()方法中的异常

    run()与异常 不管是Threade还是Runnable的run()方法都没有定义抛出异常,也就是说一条线程内部发生的checked异常,必须也只能在内部用try-catch处理掉,不能往外抛,因为 ...

  7. 0039 Java学习笔记-多线程-线程控制、线程组

    join线程 假如A线程要B线程去完成一项任务,在B线程完成返回之前,不进行下一步执行,那么就可以调用B线程的join()方法 join()方法的重载: join():等待不限时间 join(long ...

  8. zeromq源码分析笔记之线程间收发命令(2)

    在zeromq源码分析笔记之架构说到了zmq的整体架构,可以看到线程间通信包括两类,一类是用于收发命令,告知对象该调用什么方法去做什么事情,命令的结构由command_t结构体确定:另一类是socke ...

  9. [Android学习笔记]子线程更新UI线程方法之Handler

    关于此笔记 不讨论: 1.不讨论Handler实现细节 2.不讨论android线程派发细节 讨论: 子线程如何简单的使用Handler更新UI 问题: android开发时,如何在子线程更新UI? ...

随机推荐

  1. git 只merge一个commit的方法

    https://git-scm.com/book/tr/v2/Git-Basics-Viewing-the-Commit-History gil log 来查看commit的记录 Other main ...

  2. windows7下安装MySQL-5.6.34

    下载安装包"mysql-5.6.34-winx64.zip",放到某个文件夹中,解压安装包,重命名文件夹名为"mysql-5.6.34"   修改"m ...

  3. Oracle数据表转换为Shapefile(二)

    在上一篇博文<Oracle数据表转换为Shapefile(一)>中详细描述了一种基于Oracle数据表生产Shapefile的技术方法,本文同样以详细图解的方式描述一种更便捷的方法来完成同 ...

  4. 7z文件格式及其源码的分析(二)

    这是第二篇, 第一篇在这里: 这一篇开始分析7z的源码结构. 一. 准备工作: 1. 源码下载: 可以从官方中文主页下载:http://sparanoid.com/lab/7z/. 为了方便, 这里直 ...

  5. ZKEACMS 配置使用 HTTPS

    在开始之前,请升级你的ZKEACMS到最新版本,旧版本使用HTTPS会有问题 https加密链接,在访问的过程中,可以保护你的隐私,保证你的敏感数据不会被别人偷窥,窃取.如果你的服务器在境外,使用ht ...

  6. [C#]合并单元格(行、列)

    详细链接:https://shop499704308.taobao.com/?spm=a1z38n.10677092.card.11.594c1debsAGeak説明:控件ID指的是页面上面的Grid ...

  7. 一文读懂加固apk的开发者是怎么想的

    有人说加固会明显拖慢启动速度,同时造成运行卡顿,严重降低用户体验,而且加固是完全可以脱壳的,只需要pc配合进行断点调试就能抓到解密后的dex文件,加固并没有所说的那么安全. 但是为什么还有一大批开发者 ...

  8. [BJ2006] 狼抓兔子

    题目链接:戳我 按理说以dinic\(O(M*N^2)\)的时间复杂度应该是过不去的(呃我也知道这个上界很松).但是最小割确实可以水过去?? 但是本着写正解的精神,我还是学了学平面图和对偶图,跑最短路 ...

  9. jquery鼠标经过水平180度翻转效果

    Html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/htm ...

  10. linux的档案权限和目录配置

    Linux一般将档案可存取的身份分为三个类别,分别是 owner/group/others /etc/passwd  账号信息 /etc/shadow 个人密码 /etc/group    组名记录 ...