java中多线程的基本理解以及运行机制

java的运行机制 了解Java的运行机制,能够更好的帮你理解Java语言 立即下载

所谓线程,就是一种简单的进程,多线程可以实现多个运行,这样就丰富我我们的功能。

线程有以下几个状态:

可运行状态,运行状态,阻塞状态,销毁状态。

运行线程一般有两种方式,一种是继承thread类重写run方法。第二种是写Runnable然后重写run方法实现线程。

下面是分别两类方法:

1:

package Test;

public class dxcheng {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Cat1 cat1=new Cat1();
//		启动线程,启用run函数,进入可运行状态
		cat1.start();
	}
}
class Cat1 extends Thread{
	int times=0;
	public void run(){
		while(true){
//			休眠1000毫秒
			try {
//				进入阻塞状态
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.println("Hello"+times);
			times++;
			if(times==10){
//				退出线程
				break;
			}
		}
	}
}
2:

package Test;

public class runnable {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Dogs dog1=new Dogs();
		Thread t=new Thread(dog1);
		t.start();
	}

}
class Dogs implements Runnable{
	int times=0;
	public void run(){
		while(true){
			try {
				
				Thread.sleep(1000);
				times++;
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.println("您好"+times);
			if(times==10){
				break;
			}
		}
	}
}


最后就是实现多线程交替进行工作:

package Test;

public class runnable {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Dogs dog1=new Dogs();
		Thread t=new Thread(dog1);
		Pig pig1=new Pig();
		Thread m=new Thread(pig1);
		t.start();
		m.start();
	}

}
class Dogs implements Runnable{
	int times=0;
	public void run(){
		while(true){
			try {
				
				Thread.sleep(1000);
				times++;
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.println("我是狗"+times);
			if(times==10){
				break;
			}
		}
	}
}
class Pig implements Runnable{
	int times=0;
	public void run(){
		while(true){
			try {
				
				Thread.sleep(1500);
				times++;
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.println("我是猪:"+times);
			if(times==10){
				break;
			}
		}
	}
}



Win11上WSL2安装Ubuntu22.04避坑指南:从镜像源到C++环境配置 本文详细介绍了在Win11系统上安装和配置WSL2及Ubuntu22.04开发环境的完整流程与避坑指南。内容涵盖从解决网络安装错误、更换国内镜像源以加速软件更新,到一站式配置C++开发工具链(包括GCC、GDB、CMake等),并提供了提升WSL2使用体验的实用技巧和故障排除方法,帮助开发者高效搭建稳定的Linux开发环境。 阅读详情

相关推荐

ADS新手必看:5分钟搞定Smith圆图阻抗匹配(附详细操作截图)

本文为射频电路设计新手提供了在ADS软件中快速使用Smith圆图进行阻抗匹配的实战指南。通过清晰的步骤和操作截图,详细演示了如何从负载阻抗点出发,通过添加电感和电容元件,在5分钟内完成向50欧姆标准阻抗的匹配,并介绍了仿真验证与性能调优的方法,帮助工程师和学生直观掌握这一核心技能。

weixin_29261711的博客 391

多线程机制

ThreadGroup 字面意思是线程组,也就是一组线程。当然也可以理解为是一个线程的集合。此外,线程组也可以包含其他线程组。线程组构成一棵树,在树中,除了初始线程组外,每个线程组都有一个父线程组。允许线程访问有关自己的线程组的信息,但是不允许它访问有关其线程组的父线程组或其他任何线程组的信息。提供了两个构造方法:创建一个名为 name 的新线程组。创建一个名为 name 的新线程组,并同步指定父线程组。常用方法如下表所示:本实验主要讲解 ThreadGroup 线程组的获取和使用。

qq_58631644的博客 574

AI Olympics:面向真实决策的不完全信息博弈评测框架

在人工智能落地实践中,传统基准测试(如MMLU、GSM8K)擅长评估知识调用与静态推理能力,却难以衡量模型在动态、模糊、高代价的真实场景中的策略决策水平。AI Olympics正是为弥补这一断层而生——它以扑克、狼人杀等社会性博弈为载体,系统考察模型在不完全信息下的对手建模、欺骗检测、多步序贯推理与代价敏感执行等核心能力。其技术价值在于将‘黑箱决策’转化为可追踪、可归因、可压力测试的动态思维图谱(DTG),支撑金融风控、智能客服、交通调度等强交互业务场景的能力诊断与持续优化。

weixin_30983965的博客 296

多线程机制详解

多线程通过并发执行提升资源利用率和响应速度,但需谨慎处理同步问题。其应用广泛覆盖I/O密集型任务、高并发服务等领域,开发者需结合硬件特性与编程语言工具(如锁、线程池)实现高效并发。

wobenwoxiangfei的博客 310

Labview程序框架介绍

当掌握LabVIEW基础知识并达到,理解单个小型模块程序会相对轻松。而若想进一步探索大型程序,就必然需要了解程序框架相关内容。LabVIEW常用的程序架构包括等。在多年工作中,我接触过的众多高级工程师所开发的大型程序,基本都基于这些架构搭建。接下来,将为大家详细介绍这些框架。

Misterlhw的博客 4617

Miniforge3部署教程,完美替代Anaconda3

大背景不介绍了,哎!直接上教程!

zzy_ucas的博客 1万+

关于多线程的原理讲解

关于多线程的原理讲解

JBP_2024的博客 1178

UniApp实现多端支付功能完整实现指南

支付业务流程多端支付实现安全性保障异常处理最佳实践支付基础知识多端支付实现统一支付封装安全性处理异常处理最佳实践根据具体业务场景选择合适的支付方式注重安全性和用户体验做好异常处理和日志记录持续优化和改进支付流程关注我,持续分享前端项目开发经验!

weixin_63454527的博客 2127

多线程如何工作,工作原理是什么

线程是程序执行的最小单位,是进程中的一个执行流。一个进程可以包含多个线程,这些线程共享进程的资源,但拥有独立的执行路径。相比于进程,线程的创建、销毁和切换成本较低,使得多线程编程成为提高程序并发性和性能的主流手段。

qq_52645134的博客 1281

八路抢答器____一个作品的制作思路

学习了解到一个产品制作完全由一个人去采购,设计,仿真,画PCB。不光是需求的分析还有实现功能时如何搭建电路,和给出一个简单高效的设计方法也是至关重要的。

weixin_73690807的博客 1520

跟踪雷达点迹处理

1,点迹定义: 假设研究对象为位置x和速度v,预测值是根据这一时刻的x值、v值来预测下一时刻的x、v;测量值是根据传感器也就是雷达得到的,因为各种误差的存在,这两个值都不准确,所以把他们加权融合,得到一个新的量—状态值。 点迹就是所谓的测量值,由雷达对同一个目标探测到的一系列点(假设目标静止,但由于误差的存在,会扫描出不止一个点),航迹对应状态值,是点迹和预测轨迹的加权融合。 2,雷达信号和点迹处理关系: 3,点迹航迹处理流程 4,仿真 clear all; RealData=G

wangjie36的博客 1万+

多线程之线程实现,生命周期

线程简介 大体理解 解决多任务问题, 多线程 多条路径同时进行 一个进程会有多个线程 一个进程匹配一个程序 一个进程中开辟多条路径就是多线程 多线程相当于开辟了多条路,相互不影响 进程与线程区别: 操作系统—>进程—>线程 进程 资源分配的最小单位 切换开销大 有独立的代码跟数据空间 线程 调度跟执行的最小单位 多个线程共享一个进程下的资源 每个线程会有独...

weixin_43834595的博客 142

Python爬虫技术应用:体育赛事直播数据抓取与分析

Web爬虫(Web Crawling)是一种通过模拟浏览器行为从网站获取数据的技术。发送请求:发送HTTP请求(通常是GET或POST请求)获取目标网页的HTML内容。解析网页:使用解析工具(如lxml)从HTML中提取出所需要的信息。存储数据:将抓取到的数据存储到数据库、文件或数据结构中,供后续分析和使用。数据分析与展示:使用数据分析工具(如PandasMatplotlib)对数据进行处理、清洗和可视化,生成有价值的报告和图表。Requests:用于发送静态网页的HTTP请求并获取响应。

2201_76125261的博客 1309

Java学习笔记系列04 - 多线程

Java 程序的进程里有两个线程:主线程,垃圾回收线程(后台线程)。一个进程中可以运行多个线程,多个线程可共享数据。一个进程至少有一个线程。 多进程:操作系统中同时运行的多个程序。 多线程:线程是程序执行的一条路径,在同一个进程中可以包含多条线程。 多线程存在一个特性:随机性。 造成的原因:CPU在瞬间不断切换去处理各个线程而导致的,可以理解成多个线程在抢CPU资源。 进

ChasonWu的博客 357

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

关于多线程的工作原理

今天,用一天的时间搞明白了线程运行的来龙去脉。自己试着写了一个小小的程序来说明我的明白程度吧!虽然不是很好,但是,我至少能知道多线程运行过程中的原理了。但这些还是很浅很浅的,还要进一步学习,只是开始啦~import java.awt.*;import javax.swing.*;public class FirstXiancheng implements Runnable{ Str

皮皮的专栏 5225

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

多线程

概述 作用编程要点 作用 实现程序并行执行,提高效率 编程要点 run()方法编写多线程,它是线程的主体,当启动线程时,会执行线程的run()方法start()方法启动多线程sleep()方法用于休眠当前线程指定的毫秒数 示例 示例1: class testThread extends Thread{ public testThread(String str){

叶晓江 分布式计算 技术笔记 460

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Java中多线程的常用操作方法(线程命名与取得、线程休眠、线程让步、等待线程终止、线程停止、线程优先级、守护线程)

文章目录多线程的常用操作方法3.1 线程命名与取得 多线程的常用操作方法 3.1 线程命名与取得   多线程的运行状态是不确定的,所以对于多线程操作必须有一个东西明确标识出线程对象的信息,这个信息往往通过名称来描述。在Thread类中提供有如下的线程名称方法: No 方法名称 类型 描述 1 public Thread(Runnable target ,String name) 构...

zhao_miao的博客 834

Java 线程、同步

【线程、同步】 主要内容 线程 同步 线程状态 教学目标 能够描述Java中多线程运行原理 能够使用继承类的方式创建多线程 能够使用实现接口的方式创建多线程 能够说出实现接口方式的好处 能够解释安全问题的出现的原因 能够使用同步代码块解决线程安全问题 能够使用同步方法解决线程安全问题 能够说出线程6个状态的名称 第一章 线程 1.1 多线程原理 昨天的时候我们已经写过一版...

白长生的小窝 166

多线程(二)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33896069的博客 78

Java基础 线程、同步

主要内容 线程同步 线程状态 教学目标 能够描述Java中多线程运行原理 能够使用继承类的方式创建多线程 能够使用实现接口的方式创建多线程 能够说出实现接口方式的好处 能够解释安全问题的出现的原因 能够使用同步代码块解决线程安全问题 能够使用同步方法解决线程安全问题 能够说出线程6个状态的名称 第一章 线程 1.1多线程原理 昨天的时候我们已经写过一版多线程的代码,很多同学对原理不是很清楚,那么我...

kai46385076的专栏 274

嵌入式和java_java语言基本学习文档一

简介:1 诞生Java是由Sun Microsystes公司推出的Java面向对象编程语言。由James Goslin及其同事共同研发的,于1995年正式推出。Java最初被称为Oak,1991年为消费类电子产品的嵌入式芯片而设计的。1995年改名为Java,并重新设计用于开发Internet应用程序。2 特点2.1简单Java丢弃了c++中许多复杂功能,如指针、操作符重载、多继承、自动的强制值类...

weixin_39612653的博客 288

线程、同步

六 【线程、同步】 文章目录六 【线程、同步】主要内容第一章 线程1.1 多线程原理1.2 Thread类1.3 创建线程方式二1.4 Thread和Runnable的区别1.5 匿名内部类方式实现线程的创建第二章 线程安全2.1 线程安全2.2 线程同步2.3 同步代码块2.4 同步方法2.5 Lock锁第三章 线程状态3.1 线程状态概述3.2 Timed Waiting(计时等待)3.3 B...

张文军 467

JAVA并发

一个 Java 程序的运行是 main 线程和多个其他线程同时运行。

zsysingapore的博客 264

JAVA 多线程

这里我们做一个完整的例子来说明线程产生的方式不同而生成的线程的区别: import java.io.*; import java.lang.Thread; class MyThread extends Thread{ public int x = 0; public void run(){ System.out.println(++x); } } class ...

伟哥~ YZ 71

内存分析理解

栈:存放基本变量类型(会包含这个基本类型的具体数值)(八大基本类型:byte,short,int,long,float,double,char,booelan) 引用对象的变量(会存放这个引用在堆里面的具体地址) int [] array;//声明是在栈中 堆:存放new的对象和数组 可以被所有的线程共享,不会存放别的对象引用 array = new int[10];//当new了新数组时,就进入了堆中 ...

weixin_43990260的博客 87

SpringBoot高并发!java工程师工资条

Java基础 1Java语言的三大特性 2.Java语言主要特性 3. JDK和JRE有什么区别 4.Java基本数据类型及其封装类 5.如果main方法被声明为private会怎样? 6.说明- -下public static void main(String argsQ])这段声明里每个关键字的作用 7.==与equals的区别 8.Object有哪些公用方法 9.为什么Java里没有全局变量? 10.while循环和do循环有什么不同? 11.char型变量中能不能存储一个中文汉字?为什么? 12.p

m0_57205294的博客 195
上一篇: java的事件处理机制基础
下一篇: io流初步
宇宙第一帅
博客等级 码龄12年 22粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值