java多线程经典实例

Java中的线程休眠大法系列(一)Thread.sleep() 文章目录前言Thread.sleep()1.看看JDK中此方法上面的注释2.案例展示(线程状态:TIMED_WAITING)3.案例展示(InterruptedException异常会清除interrupted status)4.案例展示(sleep不会释放monitors锁)总结 前言 如果让一个线程进入休眠? 我们第一个想到的就是Thread.sleep(long millis)方法吧! 如果你对synchronized足够了解的话,那么你肯定还能想到Object.wait()方法。 再如果你对jav 阅读详情
import java.io.*;
//多线程编程
public class MultiThread 
{
public static void main(String args[])
{
System.out.println("我是主线程!");
//下面创建线程实例thread1
ThreadUseExtends thread1=new ThreadUseExtends();
//创建thread2时以实现了Runnable接口的THhreadUseRunnable类实例为参数
Thread thread2=new Thread(new ThreadUseRunnable(),"SecondThread");
thread1.start();//启动线程thread1使之处于就绪状态
//thread1.setPriority(6);//设置thread1的优先级为6
//优先级将决定cpu空出时,处于就绪状态的线程谁先占领cpu开始运行
//优先级范围1到10,MIN_PRIORITY,MAX_PRIORITY,NORM_PAIORITY
//新线程继承创建她的父线程优先级,父线程通常有普通优先级即5NORM_PRIORITY
System.out.println("主线程将挂起7秒!");
try
{
Thread.sleep(7000);//主线程挂起7秒
}
catch (InterruptedException e)
{
return;
}
System.out.println("又回到了主线程!");
if(thread1.isAlive())
{ 
thread1.stop();//如果thread1还存在则杀掉他
System.out.println("thread1休眠过长,主线程杀掉了thread1!");
}
else
System.out.println("主线程没发现thread1,thread1已醒顺序执行结束了!");
thread2.start();//启动thread2
System.out.println("主线程又将挂起7秒!");
try
{
Thread.sleep(7000);//主线程挂起7秒
}
catch (InterruptedException e)
{
return;
}
System.out.println("又回到了主线程!");
if(thread2.isAlive())
{ 
thread2.stop();//如果thread2还存在则杀掉他
System.out.println("thread2休眠过长,主线程杀掉了thread2!");
}
else
System.out.println("主线程没发现thread2,thread2已醒顺序执行结束了!");
System.out.println("程序结束按任意键继续!");
try
{
System.in.read();
}
catch (IOException e)
{
System.out.println(e.toString());
}

}//main
}//MultiThread


class ThreadUseExtends extends Thread
//通过继承Thread类,并实现它的抽象方法run()
//适当时候创建这一Thread子类的实例来实现多线程机制
//一个线程启动后(也即进入就绪状态)一旦获得CPU将自动调用它的run()方法
{

ThreadUseExtends(){}//构造函数
public void run()
{
System.out.println("我是Thread子类的线程实例!");
System.out.println("我将挂起10秒!");
System.out.println("回到主线程,请稍等,刚才主线程挂起可能还没醒过来!");
try
{
sleep(10000);//挂起5秒
}
catch (InterruptedException e)
{
return;
}
//如果该run()方法顺序执行完了,线程将自动结束,而不会被主线程杀掉
//但如果休眠时间过长,则线程还存活,可能被stop()杀掉
}
}


class ThreadUseRunnable implements Runnable
//通过实现Runnable接口中的run()方法,再以这个实现了run()方法的类
//为参数创建Thread的线程实例
{
//Thread thread2=new Thread(this);
//以这个实现了Runnable接口中run()方法的类为参数创建Thread类的线程实例
ThreadUseRunnable(){}//构造函数
public void run()
{
System.out.println("我是Thread类的线程实例并以实现了Runnable接口的类为参数!");
System.out.println("我将挂起1秒!");
System.out.println("回到主线程,请稍等,刚才主线程挂起可能还没醒过来!");
try
{
Thread.sleep(1000);//挂起5秒
}
catch (InterruptedException e)
{
return;
}
//如果该run()方法顺序执行完了,线程将自动结束,而不会被主线程杀掉
//但如果休眠时间过长,则线程还存活,可能被stop()杀掉
}

}
//该程序可做的修改如改休眠时间或优先级setPriority() 
 


评论: 
通过继承Thread类和实现Runnable接口的两种方式来实现多线程编程!  
 
100个Java经典编程实例源码实战合集 类的定义由访问修饰符、类名、父类继承、接口实现以及内部成员(字段、方法、构造器、代码块等)组成。其中,成员变量的封装是保证对象状态安全的第一道防线。通过使用private关键字限制外部直接访问,并提供公共的getter/setter方法来控制读写逻辑,可以有效防止非法状态变更。代码逻辑逐行分析:第2–4行:声明私有字段,隐藏内部状态。final修饰的ownerName确保账户所有者不可更改。 阅读详情

相关推荐

《Java经典实例(第2版)》深入理解与实践指南

在Java中,类是对象的蓝图或模板。通过定义类,我们可以创建具有相同属性和方法的对象。类的定义从关键字class开始,后跟类名。类体内可以包含变量(字段)、方法、构造器以及其他类声明等元素。// 类的属性// 类的构造器// 类的方法在上述代码中,定义了一个名为Car的类。它有三个私有属性brandmodel和year,分别表示汽车的品牌、型号和生产年份。此外,还有一个构造器(Car方法),用于创建Car对象的实例,并且有一个公共方法drive()

weixin_34718952的博客 685

JAVA多线程学习初步经典实例

JAVA多线程学习初步经典实例发信人: realwhs(Amo te)整理人: abhandsome(2004-03-23 10:37:57),import java.io.*; //多线程编程 public class MultiThread  { public static void main(String args[]) { System.

山哥's 专栏 6615

centos7 清理缓存

一、系统环境 系统版本 CentOS Linux release 7.3.1611 (Core) 内核版本 Linux xx-user 3.10.0-514.el7.x86_64 #1 SMP 背景 服务器分配的账号是普通用户,只能执行sudo命令 二、缓存查看及基本概念 查看内存使用情况 [user01@xx-user ~]$ free -h total used free shared buff/cache availabl

sunzq55的博客 4007

Java多线程案例及其代码实现

目录 案例一:单例模式 1.饿汉模式的代码实现 2.懒汉模式 案例二:阻塞队列 1.线程安全 2.产生阻塞效果 1.如果队列为空,尝试出队列,就会出现阻塞现象,阻塞到队列不为空为止。 2.如果队列未满,尝试入队列,也会出现阻塞,阻塞到队列不为满为止。 案例三:定时器 1.描述任务 2.组织任务(使用一定的数据结构把这些任务给放到一起) 3.执行时间到了的任务 案例四:线程池 案例一:单例模式 线程安全的单例模式有两种典型实现: 1.饿...

weixin_59771320的博客 8899

未来智能家居解决方案:AI应用架构师的前沿探索

当你加班到深夜回家时,门锁自动识别你的脚步声解锁,玄关灯渐亮成你最爱的暖光,空调早已调到25℃(你夏天的习惯温度),音箱播放着最近循环的爵士乐,茶几上的智能水壶烧好了温水——这不是科幻电影,而是未来智能家居的日常。如何让“冰冷的设备”变成“懂你的伙伴”。我们将深入探讨五大前沿技术(边缘AI、多模态融合、联邦学习、数字孪生、个性化推荐)的底层原理,用“家里的小管家”“邻居互相学习”等生活化比喻简化复杂概念,结合代码示例与架构图还原实现流程,并通过智能卧室、智能厨房等真实案例展示落地路径。

AI天才研究院 1411

NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()

Please use torch.nn.Module.to_empty() instead of torch.nn.Module.to()输出(llama) (base) [root@localhost home]# nvidia-smi Unable to determine the device handle for GPU0000:09:00.0: Unknown Error。这是典型的“孤儿进程”,但它还是。(僵尸进程),占用 GPU 资源。如果进程仍然不消失,并且。,这意味着它的父进程是。

m0_61636632的博客 2097

Java多线程编程实例

这篇文章主要介绍了java多线程编程实例,分享了几则多线程的实例代码,具有一定参考价值,加深多线程编程的理解还是很有帮助的,需要的朋友可以参考下。 1.三个售票窗口同时出售20张票 程序分析: (1)票数要使用同一个静态值 (2)为保证不会出现卖出同一个票数,要java多线程同步锁。 设计思路: (1)创建一个站台类Station,继承Thread,重写run方法,在run方法里面执行售票操作!售...

weixin_41549033的博客 2191

DSP TMS320F280049之CCS工程的建立(库函数版)

TMS320F280049 DSP是TI最新出的一款C2000系列的DSP,主频为100MHZ,功能较为强大,具有较多的片上模拟外设。这一节主要讲述如何新建F280049的CCS工程。 Step1.下载文件: 下载C2000Ware软件并安装。下载地址如下: http://www.ti.com.cn/tool/cn/C2000WARE?keyMatch=C2000Ware%2...

fanxianyan1993的博客 1万+

Java中多线程经典案例

相反懒汉模式则会引起线程不安全,因为懒汉模式是在有需要的时候才会去实例化对象,在多线程编程中懒汉模式要进行读和写操作,这一修改变量的值不是原子的,所有会造成线程不安全的问题,因此我们要使用synchronized对读和写操作进行加锁,打包成一个原子的操作,加锁会影响性能的问题,如果是第一次判断instance是否为空则需要加锁,若后续第二次...等,每次加锁都势必会影响性能问题,因此我们可以考虑在加一个if判断。

2301_79288225的博客 3394

从零配置Archery:手把手教你用Docker部署多数据库审核系统(MySQL/PostgreSQL/ClickHouse)

本文详细介绍了如何从零开始使用Docker部署Archery多数据库审核系统,涵盖MySQL、PostgreSQL和ClickHouse的配置与整合。文章提供了生产级Docker-compose配置、审核规则定制、工单流程设置以及企业微信通知集成等实战指南,帮助团队构建统一的企业级SQL审计平台,提升数据库操作规范与安全。

e4f5g6h7的博客 941

操作系统 | 知识梳理 | 复习(上)

操作系统复习

知识库搭建ing 3476

java 多线程 开源_[分享][经验][开源]JAVA多线程经典实例

[分享][经验][开源]JAVA多线程经典实例以下是生产者和消费者问题,是JAVA多线程经典实例,经过我的修改,更加完美,使初学者简单易懂!public class SharedBufferTest{public static void main(String args[]){SynchronizedBuffer sharedLocation=new SynchronizedBuffer();St...

weixin_39639686的博客 198

安装Openclaw[本地自动化AI助手]至windows【WSL2模式】系统 Openclaw for Windows

摘要:OpenClaw最佳兼容OpenAI系列模型,推荐使用ChatGPT API(需Auth鉴权),避免K*mi等模型导致的信用卡风险。Windows系统需满足WSL2支持条件(Win11或Win10 1903+版本)。安装需导入自签名根证书或跳过浏览器安全警告,通过离线包部署WSL发行版。使用时通过clawtoken命令获取网关认证令牌,并在浏览器完成设备配对。提供代购ChatGPT Plus账号服务(¥140/月),详细操作指南需加微信群获取文件。(150字)

qq_27246521的博客 456

JAVA 多线程 经典实例-弹跳小球

 import java.awt.*;import java.lang.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class BallGame extends JFrame implements ActionListener{ JButton jbtStart = new JButton("St

rush的专栏 3534

CollisionLoss 设计与实现原理说明

文章摘要 CollisionLoss是一种用于自动驾驶轨迹规划的碰撞惩罚损失函数,其核心思想是用多个沿车身纵轴排列的圆盘来近似表示车辆(Oriented Bounding Box)。该设计通过圆盘间的距离计算实现碰撞检测,具有以下特点: 可微性:圆盘距离计算处处可微,便于梯度回传,而传统矩形碰撞检测(分离轴定理)不可微且计算复杂。 多圆盘设计:沿车身纵向排列多个圆盘能更精确地拟合细长车体,避免单圆盘过度膨胀导致的误报。 安全覆盖:圆盘半径经过数学推导,确保完全覆盖车体矩形,避免漏检(宁可保守)。 软惩罚机制

@bangbang的博客 95

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

经典多线程实例-龟兔赛跑

经典多线程实例-龟兔赛跑 龟兔赛跑相当于2个线程,兔子比赛过程中偷懒睡觉,乌龟赢得比赛 public class GuiTuSaiPao implements Runnable{ //经典多线程实例:龟兔赛跑,兔子比赛过程中睡觉,乌龟赢得比赛 private static String winner; @Override public void run() { for (int i = 0; i <=100 ; i++) {

weixin_44197026的博客 651

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

再现java多线程的经典实例===生产者和消费者的问题

这两天用到了多线程,于是重新复习了一下,并且模拟了 多线程的经典例子生产者和消费者的问题。 Mobile 生产者生成的手机 SyncStack 用数组实现的栈 包括两个同步方法push (生产手机)和pop(消费手机) 两个实现了Runnable接口的线程类 生产者(Producer)和消费者 (Consumer) [code="java"] public class P...

家很远,心很近..... 147

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

经典多线程Java实例 生产者与消费者

    生产者-消费者问题是一个经典的进程同步问题,该问题最早由Dijkstra提出,用以演示他提出的信号量机制。在同一个进程地址空间内执行的两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。当消费者线程消费物品时,如果没有满的

思想时光机 1541

黑马程序员__java多线程总结(含经典实例!)

---------------------- android培训、java培训、期待与您交流! ------------------------ 跟大家推荐我自学期间收集的各种绝好视频: 风靡腾讯网络的Java+3G开发全套视频教程 屌丝们,最爱的.NET全套视频项目教程 史上一直被模仿10多年的PHP元老全套视频教程 进程:是一个正在执行的程序,每一个进程执行都有一个执行顺序,该顺

fengzhihen12345的专栏 550

java线程 买东西例子_java Thread 多线程 经典仓储--生产--消费实例

这两天,要做个东西,用到多线程,温习一下,写了一个经典多线程例题,仓储--生产--消费的例子,希望能对大家有点帮助.实现原理:我们去建立一个仓库(Storage),仓库中有个入库最大值,当达到这个最大值的时候,生产(Product)就停止生产.消费者就会去消费,消费之前会查询仓库里的存货量,当存货量等于0的时候,就让其停止消费,这时候,开始生产,就这样的一个循环过程.注意:这都是继承Thread进...

weixin_39986543的博客 339

java基础教程案例_Java入门的五个经典案例

这篇文章主要为大家详细介绍了5个JAVA入门必看的经典实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下入门必看的5个JAVA经典实例,供大家参考,具体内容如下1.一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处package com.softeem.demo;/***@author leno*动物的接口*/interface Animal {public voi...

weixin_33316599的博客 1828

java 经典 实例_5个JAVA入门必看的经典实例

入门必看的5个java经典实例,供大家参考,具体内容如下1.一个饲养员给动物喂食物的例子体现java中的面向对象思想,接口(抽象类)的用处package com.softeem.demo;/***@author leno*动物的接口*/interface animal {public void eat(food food);}/***@author leno*一种动物类:猫*/class cat ...

weixin_42531923的博客 3932

java入门经典编程实例_入门必看的5个JAVA经典实例

入门必看的5个JAVA经典实例1.一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处package com.softeem.demo;/***@author leno*动物的接口*/interface Animal {public void eat(Food food);}/***@author leno*一种动物类:猫*/class Cat implements ...

weixin_39695323的博客 1036

java多线程通信的经典例题:生产者消费者问题

java多线程有很多经典例题,比如窗口售票问题,生产消费问题。今天就在这里详细讲一下生产者消费者问题: 问题描述: 生产者(producer)将商品交给店员(Clerk),而消费者(Customer)从店员处取走商品,店员的货架上只能放一定数量的商品,如果生产者试图生产更多的商品,店员会叫生产者停一下,如果货架上有空位放商品再通知消费者继续生产。如果没有商品了,会告诉消费者等一下,如果店中有商品了再通知消费者来取走商品。 看到这个问题,我们不要去急着写代码,先来分析一下该题中会出现的多线程的知识点: 1.是

qq_45273552的博客 1669

java多线程的常见实例

java多线程的常见实例   一.相关知识:   Java多线程程序设计到的知识: (一)对同一个数量进行操作 (二)对同一个对象进行操作 (三)回调方法使用 (四)线程同步,死锁问题 (五)线程通信  等等     二.示例一:三个售票窗口同时出售20张票;   程序分析:1.票数要使用同一个静态值  2.为保证不会出现卖出同一个票数,要java多线程同步锁。 ...

zhangyuchao618的博客 1380
上一篇: ASP.NET技术的学习顺序问题
下一篇: “爱情呼叫转移”有感
kevin_long
博客等级 码龄20年 30粉丝 45原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值