多线程笔记

Java多线程超详细笔记 System.out.println(Thread.currentThread().getName()+“正在出售第”+(tickets–)+“张票”);System.out.println(Thread.currentThread().getName()+“正在出售第”+(tickets–)+“张票”);System.out.println(Thread.currentThread().getName()+“正在出售第”+(tickets–)+“张票”);所谓代码块就是使用{}括起来的一段代码; 阅读详情

实现多线程的两个方法

通过继承Thread类并重写该类的 run()方法,并调用start()方法来开启线程任务,因此必须创建一个Thead类的子类。
然后把线程要执行的代码写入到run()方法,再调用start()方法启动线程。
示例:

//继承Thread类
public class thread extends Thread{
    public static void main(String[] args) {
        thread t1 = new thread();//创建一个线程实例
        t1.start();//执行线程
        for(int i = 0;i<5;i++){
            System.out.println("主线程"+i);
        }
    }

    @Override
    public void run() {
        //线程类必须有run()方法
        for(int i = 0;i<5;i++){
            System.out.println("子线程"+i);
        }
    }
}


运行结果

子线程0
子线程1
主线程0
子线程2
主线程1
主线程2
主线程3
主线程4
子线程3
子线程4

Process finished with exit code 0


可以看到子线程在执行两次之后主线程才执行,这里比较明显可以看出来多线程的效果

二、实现Runnable

通过实现接口创建线程的方法,通过生成实现Runnable接口的类创建多线程。该接口只定义了一个run()方法,因此必须在新类中实现它,还必须创建Thread类的实例。
示例:

//继承Thread类
public class thread implements Runnable{
    @Override
    public void run() {//重写run方法
        for(int i = 0;i<5;i++){
            System.out.println("子线程"+i);
        }
    }

    public static void main(String[] args) {
        thread t1 = new thread();//创建任务
        Thread t = new Thread(t1);//创建线程
        t.start();
        for(int i = 0;i<5;i++){
            System.out.println("主线程"+i);
        }
    }
}

运行结果:

子线程0
主线程0
子线程1
主线程1
子线程2
主线程2
子线程3
主线程3
子线程4
主线程4

Process finished with exit code 0

常用的几个方法:

        t.start();//启动线程
        t.currentThread();//获取当前线程对象
        t.setName("t2");//设置线程名称
        t.getName();//获取线程名称
        t.sleep(1000,0);//线程休眠,括号内为两参,第一个参数为毫秒,第二个为纳秒
        //sleep会造成线程阻塞,因此需要抛出异常
三维重建笔记_光束平差法(Bundle Adjustment, BA) 目录 1 光束平差法(Bundle Adjustment, BA) 1.1 SFM (Structure‐from‐Motion) 定义 问题描述 1.2 重投影误差 (Reprojection Error) 目标函数 1.3 使用 Levenberg‐Marquardt Algorithm 进行优化 问题描述 简化目标函数 参考 Gauss‐Newton Method ... 阅读详情

相关推荐

OSMDroid(1)——OSM简介,基础例子搭建

1.OSMDroid简介 Osmdroid是一款完全开源的地图基本操作SDK,相比于现在普遍使用的百度地图,高德地图,谷歌地图等最大的好处就是开源。 最近在做一个军方项目,要求完全不能联网,从开发到应用整个阶段都是在局域网进行,相比之下采用了OSMDroid这个SDK作为解决方案。 先来看OSMDroid,便是(OpenStreetMapForAndroid),后面都简称OSM...

robotskly的博客 6182

Linux多线程笔记

记录Linux多线程的笔记

BraveExplorer的专栏 454

ArcGIS属性表汉字转拼音

接着我安装了一个编辑器“PyCharm Community Edition 2019.3.3\bin\pycharm64.exe”,在里面添加“pypinyin”包,然后将其设置为arcgis的编辑器和调试程序,还是失败;我在10.6的机器上折腾了上面几步,直到两周后脚本突然运行成功,我也不确定是哪一步导致pypinyin包配置成功,因此将心得体会写出来,如果过一段时间,打开10.2的机器运行脚本成功了,再写后续.......,按照“配置方法1:”进行尝试,显示配置失败。

2301_77413856的博客 1296

Java学习笔记-多线程

线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。进程是程序的基本执行实体。当核心线程都在运行以及任务队列满之后才能运行临时线程。都满了之后,舍弃任务10/** 参数一:核心线程数量 >=0* 参数二:最大线程数 >0 最大数量 >= 核心线程数量* 参数三:空闲线程最大存活时间 >=0* 参数四:时间单位 用TimeUnit指定* 参数五:任务队列 不能为null* 参数六:创建线程工厂 不能为null* 参数七:任务的拒绝策略 不能为null。

qq_45773654的博客 884

OpenAI,从推出更强大的Sora 2模型展开探索与未来发展前景+部署方法大全+文末邀请码*12

摘要 OpenAI推出的Sora 2是第二代AI视频生成模型,在多模态内容生成领域实现重大突破。文末足足有12个邀请码,速来速享!!!

aqfcca的博客 2250

set_data_check专题[使用,report_timing,setup/hold检查]

set_data_check用于约束『数据-对-数据』的『建立保持』时间检查,通常被称为非时序约束 ( non-sequential constraints ), 理论上set_data_check 可以设在任意的两个data pin 上,其中一个pin 称为 constrained pin 类似于寄存器的data pin, 另一个pin 称为related pin 类似于寄存器的clock pin.

cy413026的博客 1万+

java多线程个人学习笔记

需要在创建的类中重写run()方法,并将实现线程功能的代码写入run()方法,然后调用Thread类的start()方法执行线程。如果多线程程序中: 存在一个线程,现在需要插入另一个线程,要求插入的线程结束才能继续执行原来的线程,此时就需要用到join()方法。当创建一个新线程时,如果没有显式设置优先级,它将继承父线程的优先级,默认情况下父线程优先级为。每一个线程都有各自的优先级,如果有很多线程处于就绪状态,系统就会根据优先级来决定那个线程进入运行状态。线程是程序执行的最小单位,属于进程的一个执行单位,

2401_84040384的博客 835

叶绿体基因组提交NCBI全流程避坑指南

叶绿体基因组作为环状细胞器DNA,其数据提交并非简单上传,而是需严格遵循INSDC标准的学术出版行为。其核心原理在于元数据完整性、拓扑结构语义一致性与分类学路径精确匹配;技术价值体现在保障序列可追溯、可复现、可互操作;典型应用场景涵盖植物系统发育、条形码开发及合成生物学底盘构建。实践中,FASTA头行格式、feature table嵌套规则、taxid绑定及BankIt静默校验等环节极易引发失败。本文聚焦NCBI|叶绿体基因组数据上传中的高频报错与隐性约束,提供面向生物信息工程师的实操级规范解析。

weixin_31960565的博客 330

笔记五Python多线程与多进程

笔记五Python多线程与多进程提示:以下是本篇文章正文内容,下面案例可供参考当单纯的只是想要提升效率,多线程如果多个任务之间,相互隔离… 多进程…

丿红叶丶 753

从Jira到Notion:用Sequential Thinking重构你的敏捷工作流(含GPT-6配置模板)

本文探讨了如何利用Sequential Thinking这一AI认知模型,重构敏捷开发工作流。通过连接Jira、Notion等工具,构建动态依赖图谱,实现从被动响应到主动规划的转变。文章提供了详细的配置教程和GPT-6配置模板,帮助团队实现任务自动拆解、智能看板生成与跨平台协调,从而提升项目管理效率。

gpt4scribbler的博客 205

010Editor实战:5分钟破解Zip伪加密文件(附BUUCTF真题解析)

本文详细介绍了如何使用010Editor快速破解Zip伪加密文件,包括BUUCTF真题的完整解析。通过修改关键字节,轻松解除伪加密状态,适用于CTF竞赛和实际工作场景,提升文件处理效率。

weixin_29325007的博客 327

多线程学习笔记

多线程学习笔记 一、多线程 1.1并发与并行 并发:指两个或多个事件在同一个时间段内发生。 并行:指两个或多个事件在同一时刻发生(同时发生)。 1.2进程和线程 进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称

归寒的博客 225

YOLOv11改进 | Neck篇 | 独创HFPN利用分层特征融合块HFFB模块融合多层次特征改进yolov11(全网独家创新)

本文给大家带来的最新改进是利用分层特征融合块HFFB创新yolov11的neck部分我称之为HFPN,这个模块可以融合局部特征、全局特征、中间特征将三种特征融合在一起辅助yolov11进行检测,经过我的设计分为三种可以针对大目标、小目标、标准目标的检测方式均不同,大家可以根据自己的数据集进行不同的选择,本文的内容为我独家创新。YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备目录一、本文介绍二、原理介绍三、核心代码四、添加方法4.1 修改一4.2 修改二4.3 修改三4.4 修改四。

Snu77的博客 5218

Java多线程学习笔记

1.synchronized是关键字,Lock是接口;2.synchronized是隐式的加锁,lock是显式的加锁;3.synchronized可以作用于方法上,lock只能作用于方法块;4.synchronized底层采用的是objectMonitor,lock采用的AQS;5.synchronized是阻塞式加锁,lock是非阻塞式加锁支持可中断式加锁,支持超时时间的加锁;

2402_87028704的博客 712

怀旧版电脑GBC模拟器

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

IDEA的使用指南

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

<Java笔记>创建多线程的方式(思维导图)

注:以上笔记是笔者自己的理解,并非标准定义,如有错误,欢迎指出,不甚感激!

qq_42272161的博客 140

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

学习笔记二:java多线程

学习笔记二:java多线程

ningjia2013的专栏 412

【JAVA】多线程学习笔记

多任务:多条执行路径,主线程和子线程并行交替执行程序:指令和数据的有序集合进程(Process):执行程序的一次执行过程,是资源分配的单位,每个进程有独立的地址空间线程(Thread):是CPU调度和执行的单位,一个进程可以有多个线程,共享进程的地址空间。线程有优先权,新线程的优先级较高。*真正的多线程是指多核/多CPU,如服务器。只有一个CPU的情况下,在同一个时间点只能执行一个代码,但是因为切换的很快所以就有同时执行的错觉。

weixin_47979757的博客 860

java 多线程笔记_Java多线程学习笔记(全).pdf

Java多线程学习笔记(全)一.线程的创建和启动java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。每条线程的作用是完成一定的任务,实际上就是执行一段程序流(一段顺序流的代码)。Java使用run方法来封装这样一段程序。1.继承Thread类创建线程类/**继承Thread来创建线程类*/public class FirstThread extends Thre...

weixin_32017139的博客 213

多线程(黑马程序员学习笔记)

本文是黑马程序员Java视频教程的学习笔记,重点介绍了进程、线程及其在Java中的实现方式。进程是系统资源分配的基本单位,具有独立性、动态性和并发性;线程是进程中的任务执行单元,多线程能提高执行效率。Java中开启线程的方式包括继承Thread类、实现Runnable接口和实现Callable接口,分别适用于不同场景。文章还详细讲解了线程的常用方法,如获取线程名称、线程休眠、设置优先级和守护线程等。此外,探讨了线程安全问题及解决方案,如同步代码块、同步方法和Lock锁,并介绍了死锁的产生条件及避免方法。

A2294249395的博客 1637

多线程笔记三(Java)

#上课笔记,仅自己看得懂 一 ,有关线程的一些状态: 二,线程控制-联合控制 三,后台线程 笔记一: /* *死锁: *无法解决,只可避免 *jvm不检测,也不避免,所以程序源要避免不发生死锁 *Thread类: *suspend() *resume()两个方法已被弃用,会导致死锁 * *如何避免死锁: *保证每一个线程按一定的顺序去访问 * *线程阻塞:有人把阻塞状态,等待状态,计时状态合成为阻...

蔡徐坤加入博客园的博客 214

一篇就够!Java 多线程编程核心笔记

线程通信(Thread Communication)就是——多个线程之间共享数据,通过某种方式相互“打招呼”或“同步”进度。你可以想象两个线程就像两个人在炒菜,一个切菜、一个炒菜,它们必须“配合”着来: 🥕切好了菜 → 通知炒菜的人:“我切完啦你炒吧!🍳炒好了菜 → 也得告诉切菜的:“我炒好了你快切下一个~”这种“打招呼”的过程,就是线程通信。4.2 为什么要线程通信?因为。

2301_79897453的博客 1289
下一篇: JSON解析教程
githubbbb
博客等级 码龄7年 2粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值