java用Thread方式创建多线程
进程:一个正在执行的程序,每一个进程都有一个执行顺序,该
顺序是一个执行路径,或者叫一个控制单元。
线程:进程中一个独立的控制单元。线程控制着进程的执行。
一个进程中至少有一个线程。
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基础 继承的方式创建多线程 / 线程模拟模拟火车站开启三个窗口售票
继承的方式创建多线程 笔记: /**继承的方式创建多线程 * 线程的创建方法: * 1.创建一个继承于Thread 的子类 * 2.重写Thread类的run()方法 ,方法内实现此子线程 要完成的功 ...
- Java分享笔记:创建多线程 & 线程同步机制
[1] 创建多线程的两种方式 1.1 通过继承Thread类创建多线程 1.定义Thread类的子类,重写run()方法,在run()方法体中编写子线程要执行的功能. 2.创建子线程的实例对象,相当于 ...
- java 线程Thread 技术--创建线程的方式
在第一节中,对线程的创建我们通过看文档,得知线程的创建有两种方式进行实现,我们进行第一种方式的创建,通过继承Thread 类 ,并且重写它的run 方法,就可以进行线程的创建,所有的程序执行都放在了r ...
- 创建多线程的方式:继承Thread类和实现Runnable接口
1.通过继承Thread类的方式创建多线程(这里只是简单的代码演示创建多线程的方法) package com.baozi.exer; public class ThreadDemo { public ...
- java创建多线程的三种方式
/***************************继承Thread类创建多线程************************/ public class FirstThread extends ...
- java创建多线程(转载)
转载自:Java创建线程的两个方法 Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对 ...
- 多线程01.newThread的方式创建线程
1.java应用程序的main函数是一个线程,是被jvm启动的时候调用,线程的名字叫main 2.实现一个线程,必须创建一个thread实例,override run方法,并且调用start方法. 3 ...
- Java 线程--继承java.lang.Thread类实现线程
现实生活中的很多事情是同时进行的,Java中为了模拟这种状态,引入了线程机制.先来看线程的基本概念. 线程是指进程中的一个执行场景,也就是执行流程,进程和线程的区别: 1.每个进程是一个应用程序,都有 ...
- Java OOP——第七章 多线程
1.进程:是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间): Eg:用户点击桌面的IE浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间.当用户再次点击左面的IE浏览器, ...
随机推荐
- java高并发编程(三)
java高并发主要有三块知识点: synchronizer:同步器,在多个线程之间互相之间怎么进行通讯,同步等: 同步容器:jdk提供了同步性的容器,比如concurrentMap,concurren ...
- mac下面 ,启动2个桌面版appium的方法
分别打开2个终端,分别输入 appium 就可以分别起2个appium桌面版,然后设置端口 即可 参考: https://blog.csdn.net/qq_15283475/article/detai ...
- IDC:时钟系统
ylbtech-IDC:时钟系统 主要应用于要求有统一时间进行生产,调度的单位如:电力,机场.轻轨.地铁.体育场馆.酒店.医院.部队.油田.水利工程等领域.大区域时钟系统主要由母钟和多台子钟构成. 1 ...
- 科学-建筑学-事务所:KPF
ylbtech-科学-建筑学-事务所:KPF 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 0. https://www.kpf.com/projects/na ...
- 刚刚研究了下ipv6,尝试配置内网VPS的IPv6地址
刚刚研究了下ipv6,尝试配置内网VPS的IPv6地址是3台设备,分别是客户机Windows系统.核心交换机.PPPoE拨号的路由器 第一步:在PPPoE拨号的路由器上面查看ppp0拨号的地址 ifc ...
- RHEL6安装配置DNS服务
RHEL6安装配置DNS服务 作者:Eric 微信:loveoracle11g 安装软件包 [root@rac1 ~]# yum -y install bind bind-chroot caching ...
- windows服务没有及时响应启动或控制请求
单击开始,单击运行,键入regedit,然后单击“确定”. 找到并单击以下注册表子项:HKEY_LOCAL_MACHINE——SYSTEM——CurrentControlSet——Control 在右 ...
- gulp 使用案例
1.gulp 配置: // 引入 gulp var gulp = require('gulp'); var watch = require('gulp-watch'), //导入所有gulp需要的模块 ...
- SPSS中文版安装
我这里安装的是64位的 双击安装包 选择您的安装目录 在这里等几分钟 重要!安装完毕后将图中选项勾去掉! 这个时候输入一下授权码 9DNCAF2O3QVDV7FBIO696OO6GWLNXZPPRYT ...
- Android购物车的实现,仿淘宝天猫京东等APP。处理RecyclerView或listview中的选中事件;
很久之前的代码了,拉出来晾晾! 购物车大致思路: 分为:商品.店铺.全选: 商品全部选中后--店铺自动选中:商品未全部选中(若有一个商品未选中)--店铺不选中. 店铺全部选中后--全选自动选中:店铺未 ...