多线程日记(17.5.3)
线程的run()和start()方法。
start()方法表示重新启用一个新的线程,新线程会掉用run()方法;run()方法就相当于一个普通的方法,可以重复进行调用。
public class Test {public static void main(String[]args){Thread thread=new NewThread("aa");thread.run();thread.start();} } class NewThread extends Thread{public NewThread(String name){super(name);}public void run(){System.out.println(Thread.currentThread().getName()+" is running");} }
输出结果为main is running和aa isrunning,调用run()方法时,并不会重新开始一个新的线程,而是在已经运行的线程里调用run()方法,但是start()方法则是重新开始了一条新的线程。
synchronized总结(摘自http://www.cnblogs.com/skywang12345/p/3479202.html)
在java中,每个对象都有一个同步锁且只有一个同步锁(同步锁是依赖于对象而存在的synchronized)。当我们去调用某个对象的synchronized时,就会获得该对象的同步锁。人不能两次踏入同一条河流,同样的当一个线程访问一个对象的同步锁时,另一个线程访问这个对象的同步锁就会被阻塞。
public class Test {public static void main(String[]args){NewThread obj=new NewThread();Thread thread1=new Thread(obj,"t1");Thread thread2=new Thread(obj,"t2");thread1.start();thread2.start();} } class NewThread implements Runnable{@Overridepublic void run(){synchronized(this){for(int i=0;i<3;i++){System.out.println(Thread.currentThread().getName()+":"+(i+1));}}} }
当线程thread1访问obj时,thread2就会被阻塞。
转载于:https://www.cnblogs.com/levi-ji/p/6802886.html
多线程日记(17.5.3)相关推荐
- ABP VNext学习日记17
1.public static Assembly GetExecutingAssembly() 解析:得到包含的代码正在执行的程序集. 2.public interface IHostedServic ...
- Gentoo 安装日记 17(修改/etc/fstab)
接:http://nvd11.blog.163.com/blog/static/2000183122012726102652274/ 编译完内核后就要做一些重启前的工作 第一个就是/etc/fstab ...
- QT学习日记17——Qt数据库
学习视频链接 2021新版QT图形框架编程开发(层层到肉)_C++图形用户界面开发框架_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Wf4y1Y7uh ...
- 【工作日记17】简单DDOS攻击
接之前的DDOS,今天进一步实践了简单的DDOS攻击, 一个是TCP syn flood攻击,简单说就是不断发送syn报文,源Ip.目的ip可以固定,源端口得改变,可以随机一直变化,发送给受攻击端后 ...
- 【橙子日记17】从零开始的毕业设计
更新时间:2021年1月29日 今天负责echar模块 之前: 由于这个东西,学的不多,之前只是单一的放进去了而已 现在我们要做的,是深度将他理解,把他封装! 首页 既然是首页 自然要放点厉害的东西 ...
- Java多线程详解[狂神说Java]
文章目录 多线程01: 线程的生命周期 多线程02:创建线程:继承Thread类 案例:下载图片 多线程03: 创建线程:实现Runnable接口 案例:多线程操作同一资源对象 案例:龟兔赛跑 多线程 ...
- Delphi 转载:万一博客中的“多线程”解读
博客总目录(2007.11.12 - 2010.4.25) https://www.cnblogs.com/del/archive/2010/04/25/1720750.html 多线程编程(17) ...
- 小白日记20:kali渗透测试之后渗透测试阶段(一)--上传工具
后渗透测试阶段--上传工具 为防止管理员将漏洞补上后,我们无法再通过该漏洞控制对方主机,所以需要进行后渗透测试阶段 1.上传各种工具 2.提权:为了全面控制目标系统 3.擦除攻击痕迹:防止管理员通过日 ...
- 视频教程-iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化-iOS
iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化 小码哥教育CEO,曾开发了2个iOS的流行开源框架(MJRefresh.MJExtension),目前在国内的使用率非常高. 李 ...
最新文章
- Hyper-V vNext新的虚拟机配置文件、配置版本
- 暴力探测蓝牙设备工具redfang
- Jmeter加Fiddler对web项目测试
- iOS实现自定义的弹出视图(popView)
- php文件写入生成文件,PHP 文件操作类(创建文件并写入) 生成日志
- 全链路压测一招搞定,阿里云性能测试铂金版发布
- SpringBooot-基础1-构建项目
- Iris数据集免费下载
- VS2017社区版试用30天过期重新激活方法
- nifi集群_【NIFI】 Apache NiFI 集群搭建
- 时隔三月,再次向你推荐这款公文排版插件
- [Mac] Newifi mini路由器刷breed+Padavan固件
- 聊聊我在腾讯和字节工作感受
- 5G消息RCS富媒体通信与传统短信相比有何特色?
- 卜若的代码笔记-python系列-神经网络篇-第十四章:基于keras框架的男女性别识别
- pynq 环境搭建_PYNQ 经典项目分享之 - Hello World
- java List取随机几个数据的方法实现
- 商务智能-第二章 数据仓库
- bitbake.bb文件解析[转]
- 圣诞的荒诞小故事并记录互联网协议-五层模型
热门文章
- python 改文件名字_【Python】按要求修改文件名
- Spring Boot集成RabbitMQ发送接收JSON
- 【Spring Boot】Spring Boot之整合RabbitMQ并实现消息的发送和接收
- C++中对字符串的分割方法
- Linux下安装ntp时间同步服务器
- 【★★★★★】提高PHP代码质量的36个技巧
- ibatis Clob对象处理
- 迅雷BT下载电影99.9%不动原地循环解决方案
- [CTO札记]给新助理的3句话
- spark mysql 写_Spark-SQL从MySQL中加载数据以及将数据写入到mysql中(Spark Shell方式,Spark SQL程序)...