多线程编程

程序:

进程:一个程序运行就会产生一个进程

线程:进程的执行流程,一个进程至少有一个线程,称为主线程

如:QQ聊着天,同时在听音乐

一个进程可以有多个线程,多个线程共享同一个进程的资源

线程类:Tread

多线程编程:

方式一:继承Thread

(1) 定义一个类继承Thread

(2) 重写run方法

方法中写新的线程中要执行的代码

(3) 创建这个类对象,启动线程

方式二:实现Runnable接口

(1) 定义一个类,实现Runnable接口

(2) 实现run方法

方法中写新的线程中要执行的代码

(3) 创建这类对象

(4) 创建线程(Thread)对象,构造时传入这个对象,调用start()方法启动线程

继承和实现接口对比:类只能继承一个父类,但可以实现多个接口,相比之下实现接口好一点

1.Thread常用构造方法:

Thread()

分配一个新的 Thread对象。

Thread(Runnable target)

分配一个新的 Thread对象。

2.Thread常用方法:

run()

如果这个线程使用单独的Runnable运行对象构造,则调用该Runnable对象的run方法; 否则,此方法不执行任何操作并返回。

start()

导致此线程开始执行; Java虚拟机调用此线程的run方法。

setName(String name)

将此线程的名称更改为等于参数 name 。

getName()

返回此线程的名称。

currentThread()

返回对当前正在执行的线程对象的引用。

3.Runnable:

run()

当实现接口的对象 Runnable被用来创建一个线程,启动线程使对象的 run在独立执行的线程中调用的方法。

Java学习笔记之——多线程的更多相关文章

  1. 【原】Java学习笔记032 - 多线程

    package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * [进程]:正在 ...

  2. Java学习笔记:多线程(一)

    Java中线程的五种状态: 新建状态(New) 就绪状态(Runnable) 运行状态(Running) 阻塞状态(Blocked) 凋亡状态(Dead) 其中阻塞状态(Blocked)又分为三种: ...

  3. java学习笔记(5)多线程

    一.简介(过段时间再写,多线程难度有点大) --------------------------------------- 1.进程:运行时的概念,运行的应用程序 2.线程:应用程序内部并发执行的代码 ...

  4. Java 学习笔记(11)——多线程

    Java内部提供了针对多线程的支持,线程是CPU执行的最小单位,在多核CPU中使用多线程,能够做到多个任务并行执行,提高效率. 使用多线程的方法 创建Thread类的子类,并重写run方法,在需要启动 ...

  5. Java学习笔记:多线程(二)

    与线程生命周期相关的方法: sleep 调用sleep方法会进入计时等待状态,等待时间到了,进入就绪状态. yield 调用yield方法会让别的线程执行,但是不确保真正让出.较少使用,官方注释都说 ...

  6. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  7. Java学习笔记-多线程-创建线程的方式

    创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...

  8. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  9. 20145330第六周《Java学习笔记》

    20145330第六周<Java学习笔记> . 这周算是很忙碌的一周.因为第六周陆续很多实验都开始进行,开始要准备和预习的科目日渐增多,对Java分配的时间不知不觉就减少了,然而第十和十一 ...

随机推荐

  1. 33 ArcToolBox学习系列之数据管理工具箱——投影与变换(Projections and Transformations)未完待续……

    工具箱位置 打开ArcToolBox,找到工具集Projections and Transformations,位置如下:ArcToolbox--Data Management Tools--Proj ...

  2. maven <include>与<exclude>划定的范围存在冲突,则以<exclude>配置为准。

    maven 与划定的范围存在冲突,则以配置为准.

  3. python elasticsearch 批量写入数据

    from elasticsearch import Elasticsearch from elasticsearch import helpers import pymysql import time ...

  4. iOS浏览器 new Date() 返回 NaN

    问题 项目中某个地方用到了倒计时,因此打算通过 new Date() 函数实现.但在 iPhone 真机测试的时候,显示的结果不符合预期.通过调试发现 iOS 中 new Date('2017-01- ...

  5. JS 将表格table导出excel

    function tableToExcel(id) { var tb = document.getElementById(id); var html = '<html><head&g ...

  6. [Swift]LeetCode546. 移除盒子 | Remove Boxes

    Given several boxes with different colors represented by different positive numbers. You may experie ...

  7. [SQL]LeetCode627. 交换工资 | Swap Salary

    SQL架构 create table ), sex ), salary int) Truncate table salary insert into salary (id, name, sex, sa ...

  8. [Swift]LeetCode935. 骑士拨号器 | Knight Dialer

    A chess knight can move as indicated in the chess diagram below:  .            This time, we place o ...

  9. [Swift]LeetCode972.相等的有理数 | Equal Rational Numbers

    Given two strings S and T, each of which represents a non-negative rational number, return True if a ...

  10. linux入门--Linux的应用领域

    Linux 似乎在我们平时的生活中很少看到,那么它应用在哪些领域呢?其实,在生活中随时随地都有 Linux 为我们服务着. 网站服务器 用事实说话!访问国际知名的 Netcraft 网站 http:/ ...