1、继承Thread类

Java提供了对线程这类事物的描述——Thread类。

a.     定义类继承Thread;

b.     复写Thread类中的run()方法。

目的:将自定义代码块存储在run方法中。

Tread类中定义了一个run方法,用于存储线程要运行的代码块。就相当于主线程代码存放在main中。

c.      调用线程的start方法

start:启动线程——–à调用run方法

开启线程的目的是为了运行指定代码,父类提供了空间,只需要沿袭父类功能,复写父类内容即可。因此,需要继承Thread,把run()的内容复写掉,建立线程要运行的代码。

2、声明实现Runnable接口的类

A.定义类,实现Runnable接口

[java] view plaincopy

{

private int tick = 100;

public void run()

{

while(true)

{

if (tick > 0)

{

System.out.println(Thread.currentThread().getName()+”——-sale:”+tick–);

}

}

}

}

B. 覆盖Runnable接口中的run方法

线程代码存放在接口的子类的run方法中

C. 通过Thread类建立线程对象

Ticket  t = new Ticket();

D.将Runnable接口的子类对象(即刚刚new的Ticket())作为实际参数传递给Thread类的构造函数

Thread t1 = new Thread(t);

Thread t2 = new Thread(t);

Thread t3 = new Thread(t);

Thread t4 = new Thread(t);

自定义的run方法所属的对象是Runnable接口的子类对象。因此,要让线程去指定的

象的run方法。必须明确run方法所属的对象。

E. 调用Thread类的start方法开启线程并调用Runnable接口的run方法。

t1.start();

t2.start();

t3.start();

t4.start();

三、多线程的安全问题

安全问题原因:

当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,

还未执行完,另一个线程参与进来执行,导致共享数据错误。

解决办法:

对多条【操作共享数据】的语句,一个线程在执行时,其他线程不可以参与执行,只能让一个线程先执行完。

Java对于多线程的安全问题提供了专业的解决方式——同步代码块。

synchronized()

{

}

对象如同锁,持有锁的线程才可以在同步中执行。没有持有锁的线程,即使获取cpu的权限,也无法进入同步代码块执行。

同步的前提:

Ø  必须要有两个或以上的线程。

Ø  必须是多个线程使用同一个锁。

必须保证同步中只能有一个线程

同步的好处:解决了多线程的安全问题。

同步的弊端:消耗了资源——在执行代码以外多了一个判断锁的过程(每次都判断)

[java] view plaincopy

四、多线程运行状态

五、获取线程对象以及名称

线程有自己的(默认)名称:Thread-编号    该编号从0开始。

currentThread()返回当前线程对象。currentThread()方法是静态的,说明它里面没有访问到特有对象数据。

static Thread currentThread():获取当前线程对象。

getName():获取线程名称。

设置线程名称:setName或者构造函数。(设置名称的意义:获取当前运行线程的名称,并进行判断)

注:线程1和线程2里的x不是同一个。

l  Thread-0进来,栈内存会给Thread-0分配内存空间–à此空间里有一个run()方法,run()方法里有一个x;

l  Thread-1进来,栈内存给Thread-1分配内存空间–à此空间也有一个run方法,run方法里也有一个x。

六、  售票程序

创建一个对象,里面都有100张票–>

java多线程图解_java多线程实例图解讲解相关推荐

  1. java 多线程 总结_Java 多线程总结

    昨天熬了个通宵,看了一晚上的视频,把java 的多线程相关技术重新复习了一遍,下面对学习过程中遇到的知识点进行下总结. 首先我们先来了解一下进程.线程.并发执行的概念: 进程是指:一个内存中运行的应用 ...

  2. java线程钥匙_Java多线程并发编程/锁的理解

    一.前言 最近项目遇到多线程并发的情景(并发抢单&恢复库存并行),代码在正常情况下运行没有什么问题,在高并发压测下会出现:库存超发/总库存与sku库存对不上等各种问题. 在运用了 限流/加锁等 ...

  3. java闭合数据_java多线程中线程封闭详解

    线程封闭的概念 访问共享变量时,通常要使用同步,所以避免使用同步的方法就是减少共享数据的使用,这种技术就是线程封闭. 实现线程封闭的方法 1:ad-hoc线程封闭 这是完全靠实现者控制的线程封闭,他的 ...

  4. java线程 教程_Java多线程系列教程

    Java多线程系列教程 多线程是Java中不可避免的一个重要主体.从本章开始,我们将展开对多线程的学习.接下来的内容是对Java多线程内容的讲解,涉及到的内容包括,Object类中的wait(), n ...

  5. java线程入门_java多线程快速入门(一)

    1.什么是进程 比如:QQ.QQ游戏.eclipse都是进程,可以通过任务管理器查看进程 2.进程和线程区别 线程是进程的一部分,一个进程可以包含多个线程,一个线程只能属于一个进程 进程是所有线程的集 ...

  6. java 高效的多线程同步_java多线程的同步和异步

    java多线程的同步和异步 Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言.Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心.游戏控制台.科学超级计算 ...

  7. java的多线程机制_Java多线程开发(一)| 基本的线程机制

    0. 前言 Java 为了实现跨平台,在语言层面上实现了多线程.我们只需要熟悉 Java 这一套多线程机制就行了,比 C/C++ 要容易多了. 1. 定义任务 我们编写程序,最终是为了完成特定的任务. ...

  8. java多线程代码_java多线程实例代码详解

    原文:http://blog.csdn.net/paranoidyang/article/details/70184523 作者:Paranoidyang 线程与进程的区别 (1)程序是一段静态的代码 ...

  9. java商城项目中多线程执行_java多线程中执行多个程序的实例分析

    我们知道多线程因为同时处理子线程的能力,对于程序运行来说,能够达到很高的效率.不过很多人对于多线程的执行方法还没有尝试过,本篇我们将为大家介绍创建线程的方法,在这个基础上,对程序执行多条命令的方法进行 ...

最新文章

  1. hadoop mysql mybatis_MyBatis简介与配置MyBatis+Spring+MySql
  2. 张亚勤:从信息化生存到互联网化生存 百度重构互联网安全防护体系
  3. 融合升级谋定功能性-农业大健康·林裕豪:哲商对话从玉农业
  4. [trouble shoot]atol和atoll
  5. 选择日期保存报错Invalid JSON input: Cannot deserialize value of type `java.util.Date` from String......
  6. 开启sql server2008的1433端口
  7. 音视频开发(31)---H.264格式分析
  8. C-Sharp网络编程案例解析(Socket类的使用)
  9. 个性化互联网时代,互联网营销
  10. es6中一些基本的使用方法
  11. gf(2 4)有限域的乘法c语言实现,有限域GF(2^n)的C语言实现浅析
  12. duet二重奏hp_Duet游戏安卓下载|Duet二重奏最新版下载v2.0.4-乐游网安卓下载
  13. 谈谈教学视频加密、防录屏的方法
  14. 太阳直射点纬度计算公式_高中地理:正午太阳高度公式的应用
  15. 地图编辑器开发(二)
  16. 科研萌新成长记8——我不是不接受上帝,我只是不接受上帝创造的这个世界
  17. python使用openCV图像加载(转化为灰度图像)、平滑图像处理就是将每个像素的值变换为其相邻元素的平均值、可视化平滑处理之后的图像(Blurring Images)
  18. RTX 3080和RTX 2080 Ti哪个好
  19. 银行网点管理转型专家
  20. manifest文件解决兼容性助手问题

热门文章

  1. thinkpad T430s 在win8上安装ubuntu双系统(UEFI开启)
  2. springboot上传限制1M的大坑
  3. ftp上传乱码_ftp上传与wordpres常规基本设置
  4. 小伙工资单被同事看到后遭开除!网友炸锅了 最新后续来了...
  5. 新款苹果手表来了!Apple Watch Series 7将于10月8日开售
  6. 拜登将主持商讨网络安全问题,苹果和微软CEO参加
  7. 消息人士:苹果要求代工商今年生产9000万部iPhone 13
  8. 舒服了!淘宝、支付宝等阿里系App取消开屏广告:秒开
  9. 蚂蚁之江要退地?官方回应:假的
  10. 马云卸任阿里巴巴集团董事:传承计划执行完毕,换个江湖见!