线程run方法和start方法的区别


区别

run()

只是一个普通的方法调用,不会开启新的线程。

start()

会开启新的线程,分配新的资源。里面的变量互不影响。


实例

package multithreading;public class MyThread extends Thread {String flag;public MyThread(String flag) {this.flag = flag;}@Overridepublic void run() {String tname = Thread.currentThread().getName();System.out.println(tname + "线程的run方法被调用……");for (int i = 0; i < 5; i++) {try {Thread.sleep(200);System.out.println(tname + "...." + flag);} catch (InterruptedException e) {e.printStackTrace();}}}public static void main(String[] args) {MyThread t1 = new MyThread("a");MyThread t2 = new MyThread("b");MyThread t3 = new MyThread("c");t1.run();t2.run();t3.run();System.out.println("-------------分割线-----------");t1.start();t2.start();t3.start();}
}

运行结果

main线程的run方法被调用……
main....a
main....a
main....a
main....a
main....a
main线程的run方法被调用……
main....b
main....b
main....b
main....b
main....b
main线程的run方法被调用……
main....c
main....c
main....c
main....c
main....c
-------------分割线-----------
Thread-0线程的run方法被调用……
Thread-2线程的run方法被调用……
Thread-1线程的run方法被调用……
Thread-0....a
Thread-2....c
Thread-1....b
Thread-2....c
Thread-0....a
Thread-1....b
Thread-0....a
Thread-2....c
Thread-1....b
Thread-2....c
Thread-0....a
Thread-1....b
Thread-2....c
Thread-0....a
Thread-1....b




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字典的拼接方法

刚看到觉得很简单 试着用 d3 dict1 dict2 就解决了 结果 报类型错误 后来想去遍历 在组合越想越麻烦 下面分享几个方法 d1 {"name":"luoyong","age":36}d2 {"class":"AID1712","start":"python"}方…

python反射、闭包、装饰器_python 闭包装饰器(一)

一、闭包1.举例defouter():x 10def inner(): #内部函数print(x) #外部函数的一个变量returninner#调用inner()函数的方法outer()() #法一fouter()f()#法二注意&#xff1a;inner()是局部变量&#xff0c;在全局范围不可调用(即不能直接调用inner()函数)&#xff0c;但是在法二中…

java list集合自定义排序_Java 通过 Comparator comparing 对 list 自定义 排序

摘要&#xff1a;在日常开发中&#xff0c;经常会用到排序算法&#xff0c;这里记录下日常使用比较多的排序方法&#xff0c;其中包括按指定指定&#xff1a;正序、倒序排序&#xff0c;还有按自定义字段排序的方法&#xff0c;方便日后查看&#xff1b;一&#xff1a;按指定字…

beautifulsoup爬取网页中的表格_用 Python 爬取网页

来自公众号&#xff1a;优达学城Udacity作者&#xff1a;Kerry Parker编译&#xff1a;欧剃作为数据科学家的第一个任务&#xff0c;就是做网页爬取。那时候&#xff0c;我对使用代码从网站上获取数据这项技术完全一无所知&#xff0c;它偏偏又是最有逻辑性并且最容易获得的数据…

Java中Runnable和Thread的区别

概述 Runnable 是接口。 Thread 是类&#xff0c;且实现了Runnable接口。 Thread部分源码 public class Threadimplements Runnable {private static class Caches{static final ConcurrentMap subclassAudits new ConcurrentHashMap();static final ReferenceQueue subcla…

python 神经网络工具_神经网络15分钟入门!使用python从零开始写一个两层神经网络...

本篇是该系列的第三篇&#xff0c;建议在阅读本篇文章之前先看前两篇文章。在本文中将使用python实现之前描述的两层神经网络&#xff0c;并完成所提出的“象限分类”的问题。需要注意的是&#xff0c;虽然标题叫做神经网络15分钟入门&#xff0c;但是到这篇文章&#xff0c;对…

12.3目录结构

目录结构 设计好目录结构 可读性高可维护性高比如一个Foo项目Foo/--- bin/--- foo--- foo/--- tests/--- _init__.py--- test_main.py--- init.py--- main.py---doc--- conf.py---abc.rst--- setup.py--- requirement.txt--- README简要解释一下&#xff1a; bin/:存放项目的一…

pyecharts添加文字_超燃的文字云效果,用Python就能轻松get!

本文转载自公众号&#xff1a;数据森麟(ID&#xff1a;shujusenlin)作者&#xff1a;叶庭云链接&#xff1a;https://blog.csdn.net/fyfugoyfa/ 01 / 词云图词云图是一种用来展现高频关键词的可视化表达&#xff0c;通过文字、色彩、图形的搭配&#xff0c;产生有冲击力地视觉效…

同步关键词synchronized

概述 synchronized是java中的一个关键字&#xff0c;也就是说是Java语言内置的特性。 synchronized( 一个任意的对象&#xff08;锁&#xff09; ){ 代码块中放操作共享数据的代码。 } public synchronized int getIndex() {return 1;}public static synchronized int getN…

python连接mysql用哪个模块_Python连接MySQL数据库之pymysql模块使用

Python3连接MySQL本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用。PyMySQL介绍PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库&#xff0c;Python2中则使用mysqldb。Django中也可以使用PyMySQL连接MySQL数据库。PyMySQL安装pip install pymysql连接数据…

mysql 创建视图 主键_MySQL数据库基础操作命令,本文助你更上一层楼!

今天介绍的是关于Mysql数据库一些操作的基础命令用户与权限创建用户mysql>create user test identified by BaC321#; 修改密码5.5版本及以前的命令mysql>set password for testpassowrd(!1A2#3); 5.6及以上命令mysql>update mysql.user set authentication_stringpass…

mysql 聚合函数 怎么用在条件里_MySql 中聚合函数增加条件表达式的方法

Mysql 与聚合函数在一起时候where条件和having条件的过滤时机where 在聚合之前过滤当一个查询包含了聚合函数及where条件&#xff0c;像这样的情况select max(cid) from t where t.id<999这时候会先进行过滤&#xff0c;然后再聚合。先过滤出ID《999的记录&#xff0c;再查找…

drbd(三):drbd的状态说明

1.几种获取状态信息的方法 drbd有很多获取信息的方式。在drbd84和之前的版本&#xff0c;大多都使用cat /proc/drbd来获取信息&#xff0c;多数情况下&#xff0c;这个文件展示的信息对于管理和维护drbd来说已经足够。 例如以下是drbd84上两个volume的节点状态信息&#xff1a;…

Lock的lock()方法

ReentrantLock是JDK唯一实现了Lock接口的类 lock() 是平常使用得最多的一个方法&#xff0c;就是用来获取锁。如果锁已被其他线程获取&#xff0c;则进行等待。 由于在前面讲到如果采用Lock&#xff0c;必须主动去释放锁&#xff0c;并且在发生异常时&#xff0c;不会自动释放锁…

Lock的tryLock()方法

概述 tryLock()方法是有返回值的&#xff0c;它表示用来尝试获取锁&#xff0c;如果获取成功&#xff0c;则返回true&#xff0c;如果获取失败&#xff08;即锁已被其他线程获取&#xff09;&#xff0c;则返回false&#xff0c;这个方法无论如何都会立即返回。在拿不到锁时不…

python requests库详解_python的requests库详解

快速上手迫不及待了吗&#xff1f;本页内容为如何入门 Requests 提供了很好的指引。其假设你已经安装了 Requests。如果还没有&#xff0c;去安装一节看看吧。首先&#xff0c;确认一下&#xff1a;Requests 已安装Requests 是最新的让我们从一些简单的示例开始吧。发送请求使用…

python QTreeWidgetItem下面有几个子tree_python-nlp ch1笔记:nlp的基础应用、高级应用、python优势、nltk环境搭建...

本帖是对(印度)Jalaj Thanaki作品《python自然语言处理》的翻译、缩减及改编~nlp的基础应用NLP是AI的子分支&#xff0c;其相关概念可以用于以下专家系统中&#xff1a;语音识别系统问答系统机器翻译文本摘要情感分析基于模板的聊天机器人文本分类主题分割nlp的高级应用理解自然…

C#使用ListView更新数据出现闪烁解决办法

C#使用ListView更新数据出现闪烁解决办法 在使用vs自动控件ListView控件时候&#xff0c;更新里面的部分代码时候出现闪烁的情况 如图&#xff1a; 解决以后&#xff1a; 解决办法使用双缓冲&#xff1a;添加新类继承ListView 对其重写 1 public class DoubleBufferListView : …

Lock的tryLock(long time, TimeUnit unit)方法

概述 tryLock(long time, TimeUnit unit)方法和tryLock()方法是类似的&#xff0c;只不过区别在于这个方法在拿不到锁时会等待一定的时间&#xff0c;在时间期限之内如果还拿不到锁&#xff0c;就返回false。如果一开始拿到锁或者在等待期间内拿到了锁&#xff0c;则返回true。…

python语音识别的第三方库_python标准库+内置函数+第三方库: 7.音频处理

python标准库内置函数第三方库 欲善其事&#xff0c;必先利其器 这其器必是python的标准库内置函数&#xff0c;话说许多第三方库&#xff0c; 也是对标准库的使用&#xff0c;进行封装&#xff0c;使得使用起来更方便。 这些库以使用场景来分类: 7、音频处理 音频处理主要适用…