java多线程介绍

多线程的基本实现

进程指运行中的程序,每个进程都会分配一个内存空间,一个进程中存在多个线程,启动一个JAVA虚拟机,就是打开个一个进程,一个进程有多个线程,当多个线程同时进行,就叫并发。

Java创建线程的两种方式为: 继承Thread类 和实现Runnable接口

Thread类

1、通过覆盖run方法实现线程要执行的程序代码

2、Start()开始执行多线程

package com.bin.duoxiancheng;

public class d1 extends Thread{

public void run(){

for(int i=0 ; i<50; i++){

System.out.println(i);

System.out.println(currentThread()。getName());

try {

sleep(100);

} catch (InterruptedException e) {

// TODO Auto-generatedcatch block

e.printStackTrace();

}

}

}

public static void main(String[] args){

new d1()。start();

new d1()。start();

}

}

多个线程共享一个实例的.时候,代码代码如下:

package com.bin.duoxiancheng;

public class d1 extends Thread{

int i=0;

public void run(){

for(i=0 ; i<50; i++){

System.out.println(i);

System.out.println(currentThread()。getName());

try {

sleep(100);

} catch (InterruptedException e) {

// TODO Auto-generatedcatch block

e.printStackTrace();

}

}

}

public static void main(String[] args){

new d1()。start();

new d1()。start();

}

}

结果如下所示:

Thread-1

Thread-0

1

Thread-1

1

实际2个线程在操纵不同的变量a,在执行run方法时候,线程把a都当做自己的变量在执行。

Runnable接口实现多线程

当一个继承自Thread时,就不能再继承其他类,使用Runnable接口解决了此问题,在新建一个Thread类中,在构造方法中初始化

Thread(Runnable target)

分配新的 Thread 对象。

Thread(Runnable target,String name)

分配新的 Thread 对象。

package com.bin.duoxiancheng;

public class D2 implements Runnable{

int i=0;

public void run(){

for(i=0 ; i<50; i++){

System.out.println(i);

System.out.println(Thread.currentThread()。getName());

try {

Thread.sleep(100);

} catch (InterruptedException e) {

// TODO Auto-generatedcatch block

e.printStackTrace();

}

}

}

public static void main(String[] args){

D2 d=new D2();

Thread t=new Thread(d);

t.start();

}

}

【java多线程介绍】相关文章:

java 线程简介_java多线程介绍相关推荐

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

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

  2. java线程池_Java多线程并发:线程基本方法+线程池原理+阻塞队列原理技术分享...

    线程基本方法有哪些? 线程相关的基本方法有 wait,notify,notifyAll,sleep,join,yield 等. 线程等待(wait) 调用该方法的线程进入 WAITING 状态,只有等 ...

  3. java线程基础_Java多线程基础

    前言 在我们工作和学习的过程中,Java线程我们或多或少的都会用到,但是在使用的过程上并不是很顺利,会遇到各种各样的坑,这里我通过讲解Thread类中的核心方法,以求重点掌握以下关键技术点: 线程的启 ...

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

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

  5. java线程 锁_Java多线程(二) 多线程的锁机制

    当两条线程同时访问一个类的时候,可能会带来一些问题.并发线程重入可能会带来内存泄漏.程序不可控等等.不管是线程间的通讯还是线程共享数据都需要使用Java的锁机制控制并发代码产生的问题.本篇总结主要著名 ...

  6. java线程设计模式_JAVA多线程设计模式

    漫谈UML UML 类图 类和层次结构的关系 接口与实现 聚合 访问控制 类间的关联性 顺序图 处理流程和对象间的协调 时序图 Introduction 1 Java语言的线程 Java语言的线程 何 ...

  7. java 线程由浅入深_Java多线程:由浅入深看synchronized的底层实现原理

    Java多线程:由浅入深看synchronized的底层实现原理-1.jpg (91.72 KB, 下载次数: 0) 2018-9-21 03:55 上传 前言 前俩篇文章,我们聊了聊线程/进程的概念 ...

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

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

  9. java线程栅栏_Java 多线程基础 - CyclicBarrier

    我的博客 转载请注明原创出处. 序 java.util.concurrent包里有几个能帮助人们管理相互合作的线程集的类,为多线程常见的应用场景预置了抽象好的类库.在遇到这些应用场景时应该直接重用合适 ...

最新文章

  1. NLP自然语言处理工具小结
  2. Javascript作用域问题的构造函数的变量
  3. 建模大师怎么安装到revit中_全面解析Revit软件在装配式建筑项目中的建模思路...
  4. iText in Action 2nd5.4节(Adding page events to PdfWriter)读书笔记
  5. 分隔线演练-利用参数增加分隔线的灵活度
  6. 【贯穿】.NET6结合Docker傻瓜式实现容器编排
  7. rcu宽限期_如何处理宽限期错误:静默失败不是一种选择
  8. 项目中常用正则(手机号、身份证、金额等)
  9. 电脑显卡接口类型:VGA、HDMI、DP
  10. crack翻译成中文_crack是什么意思_crack在线翻译_英语_读音_用法_例句_海词词典
  11. ViewPager 无限循环遇到的坑 viewpager.setOffscreenPageLimit(2);
  12. 纵有倚天剑还要屠龙刀,实现Power BI报表服务器自定义认证
  13. Codejock Suite Pro 19.3.0 Carck版本
  14. vdbench数据校验翻译
  15. 中国电信CTWAP和CTNET已经融合
  16. 微信扫二维码挪车小程序开发制作功能
  17. 保利威视播放器函数接口汇总
  18. 2021年的EI会议论文发表难度评价
  19. 硬件nat关闭还是开启_卡顿未必怪硬件,Win10玩游戏不可不知的技巧
  20. 细数那些年经典有深度的电影

热门文章

  1. webpack打包ES6降级ES5
  2. MySQL 事物隔离级别
  3. html - meta name=viewport content=XX/ 标签常见属性及说明
  4. * 类描写叙述:字符串工具类 类名称:String_U
  5. 我的Android进阶之旅------Android利用Sensor(传感器)实现水平仪功能的小例
  6. 讯闪菜单密码去除方法
  7. 推荐一篇文章,.net3.0新特性
  8. java 在底图上绘制线条_使用底图和geonamescache绘制k表示聚类
  9. pandas处理丢失数据与数据导入导出
  10. leetcode 62. 不同路径(dp)