进程:一个正在执行的程序,每一个进程都有一个执行顺序,该

顺序是一个执行路径,或者叫一个控制单元。

线程:进程中一个独立的控制单元。线程控制着进程的执行。

一个进程中至少有一个线程。

java VM中至少有一个线程负责java程序的执行。

而且这个线程运行的代码存在于main方法中。该线程为主线程。

扩展,jvm启动了两个线程,一个主线程,一个垃圾回收机制的线程。

1.怎样创建一个多线程?

第一种方法:通过继承Thread类的方法

1.继承Thread类

2.重写Thread类的run()方法

目的:将自定义的代码存储在run()方法中,让线程运行。

3.调用线程的start()方法。

(了解:多核编程,单核cpu的时候多线程的切换由线程控制,多核cpu下

则每个cpu可以同时处理多线程,单个cpu在同一时间只能执行一个线程,

多核下内存是瓶颈)

多线程具有随机性:

因为多线程都获取cpu的执行权。cpu执行到谁,谁就执行。明确一点,在某一时刻

只能有一个程序在运行。(多核除外),cpu在做着快速的切换,以达到看上去是同

事运行的效果。至于每个线程执行多久,cpu说了算,(其实我们可以控制执行时间爱你)

为什么要覆盖run()方法?

Thread类用于描述线程。该类定义了一个功能,用于存储线程要运行的代码。该存储功能就是run方法。

也就是说Thread类中的run()方法用于存储线程要运行的代码。

//实例:

class Demo extends Thread

{

public void run(){

for(int x=0;x<200;x++){

System.out.println("run--------------"+x);

}

}

}

class ThreadDemo

{

public static void main(String[] args)

{

Demo d=new Demo();//创建好了一个线程

/*

d.start()和d.run()的区别?

*/

d.start();//开启线程并执行该线程的run()方法。运行线程是随机的

//d.run();//仅仅是对象调用方法。线程创建了,却并没有运行。运行的结果每次都是一样的。

for(int x=0;x<200;x++){

System.out.println("HelloWold----------"+x);

}

}

}

java thread 多线程_java用Thread方式创建多线程相关推荐

  1. Java并发包——使用新的方式创建线程

    Java并发包--使用新的方式创建线程 摘要:本文主要学习了如何使用Java并发包中的类创建线程. 部分内容来自以下博客: https://www.cnblogs.com/dolphin0520/p/ ...

  2. Lambda方式创建多线程

    Lambda方式创建多线程 一.Lambda表达式的标准格式 Lamdba创建线程,是对匿名内部类创建多线程的简化 由三部分组成: a.一些参数b.一个箭头c.一段代码 格式: (参数列表)-> ...

  3. 多线程初探:三种方式创建多线程详细示例

    多线程即在同一时间,可以做多件事情. 创建多线程有3种方式,分别是继承线程类,实现Runnable接口,匿名类 一:线程概念 首先要理解进程(Processor)和线程(Thread)的区别 进程:启 ...

  4. java 5 多线程_Java基础系列五、多线程

    1.什么是进程?什么是线程? 进程概念:在计算机中运行的软件,是操作系统中最基础的组成部分 .进程是容器,里面装的都是线程. 线程概念:就是运行在进程中的一段代码,是进程中最小组织单元. 注意: 1. ...

  5. 对Java多线程编程的初步了解,实现多线程的三种方式以及多线程并发安全的线程同步机制

    什么叫进程?什么叫线程? 进程相当于一个应用程序,线程就是进程中的一个应用场景或者说是一个执行单元,一个进程可以启动多个线程,每个线程执行不同的任务,一个线程不能单独存在,他必须是进程的一部分,当进程 ...

  6. java定时任务中使用多线程_java项目中如何利用多线程实现一个定时器任务

    java项目中如何利用多线程实现一个定时器任务 发布时间:2020-11-10 16:04:03 来源:亿速云 阅读:86 作者:Leah 今天就跟大家聊聊有关java项目中如何利用多线程实现一个定时 ...

  7. java new数组_Java如何使用new创建数组

    java语言使用new操作符来创建数组,语法如下: arrayRefVar = new dataType[arraySize]; 上面的语法语句做了两件事: 一.使用dataType[arraySiz ...

  8. java实现序列化_java 序列化实现方式总结

    什么是序列化,可能大家都知道,但又不很清楚,呵呵,就像我一样,下面是一段百度百科的说明,说的很清楚,可以参考下 序列化 (serialization) 将对象的状态信息转换为可以存储或传输的窗体的过程 ...

  9. java printwriter 文件_java – 如何使用printwriter创建和写入文件

    我的代码看起来像这样 File Fileright = new File("C:\\GamesnewOrder.txt"); PrintWriter pw = new PrintW ...

最新文章

  1. JavaScript解决命名冲突的一种方法
  2. 【今日CV 计算机视觉论文速览 第136期】Wed, 26 Jun 2019
  3. 好吧,你说简单就简单,但简单的事,不要变成本能,要常思常变
  4. C# Socket 简易的图片传输
  5. 一起学java【5】---原生态数据类型使用陷阱
  6. Java编程基础 - 泛型
  7. day25,多继承,组合,接口,抽象类和鸭子型
  8. Mac版正式上线剪映,适配用M1
  9. 我的博客css得到别人的认可
  10. 视频加密并上传至oss实现高并发访问
  11. c语言ip判断程序,IP判断 (C语言代码)
  12. 计算机模拟CS,CS跳跃模拟器电脑版_CS跳跃模拟器手游电脑版_游戏堡
  13. ES文件浏览器(清理垃圾神器, 强大网盘管理功能, 强大文件分析能力)
  14. 法国蓬皮杜中心天猫官方旗舰店开业;洲际集团旗下高端品牌voco全球开业及签约酒店数突破100家 | 美通企业日报...
  15. 关于forward(转发)和redirect(重定向)的区别
  16. 用css解决Unigui在IE系列浏览器中字体变小的问题
  17. 渗透工具之CS4.0使用说明书
  18. 利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第二篇“自动运行函数”
  19. SDN(一) 用OpenWRT将路由器刷成openflow交换机
  20. 10、Dp Notes底部导航栏

热门文章

  1. Redis 混合存储最佳实践指南
  2. Gartner 发布 2022 年汽车行业五大技术趋势
  3. re:Invent大会第十年,亚马逊云科技推出了哪些底层自研技术
  4. 新型数据中心需要什么样的存储
  5. 从 0 到 1,高德 Serverless 平台建设及实践
  6. 中国开源持续燃烧,给开发者的两点思考
  7. 年初新立Flag,新华三解决方案部做了点儿啥?
  8. 写给程序员的裁员防身指南
  9. 华为120hz鸿蒙系统,华为亮剑,120Hz+鸿蒙系统+5500mAh,竟然如此销魂
  10. linux如何设置mac快捷键,在Ubuntu上使用macOS的快捷键