线程的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)相关推荐

  1. ABP VNext学习日记17

    1.public static Assembly GetExecutingAssembly() 解析:得到包含的代码正在执行的程序集. 2.public interface IHostedServic ...

  2. Gentoo 安装日记 17(修改/etc/fstab)

    接:http://nvd11.blog.163.com/blog/static/2000183122012726102652274/ 编译完内核后就要做一些重启前的工作 第一个就是/etc/fstab ...

  3. QT学习日记17——Qt数据库

    学习视频链接 2021新版QT图形框架编程开发(层层到肉)_C++图形用户界面开发框架_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Wf4y1Y7uh ...

  4. 【工作日记17】简单DDOS攻击

    接之前的DDOS,今天进一步实践了简单的DDOS攻击, 一个是TCP syn  flood攻击,简单说就是不断发送syn报文,源Ip.目的ip可以固定,源端口得改变,可以随机一直变化,发送给受攻击端后 ...

  5. 【橙子日记17】从零开始的毕业设计

    更新时间:2021年1月29日 今天负责echar模块 之前: 由于这个东西,学的不多,之前只是单一的放进去了而已 现在我们要做的,是深度将他理解,把他封装! 首页 既然是首页 自然要放点厉害的东西 ...

  6. Java多线程详解[狂神说Java]

    文章目录 多线程01: 线程的生命周期 多线程02:创建线程:继承Thread类 案例:下载图片 多线程03: 创建线程:实现Runnable接口 案例:多线程操作同一资源对象 案例:龟兔赛跑 多线程 ...

  7. Delphi 转载:万一博客中的“多线程”解读

    博客总目录(2007.11.12 - 2010.4.25) https://www.cnblogs.com/del/archive/2010/04/25/1720750.html 多线程编程(17) ...

  8. 小白日记20:kali渗透测试之后渗透测试阶段(一)--上传工具

    后渗透测试阶段--上传工具 为防止管理员将漏洞补上后,我们无法再通过该漏洞控制对方主机,所以需要进行后渗透测试阶段 1.上传各种工具 2.提权:为了全面控制目标系统 3.擦除攻击痕迹:防止管理员通过日 ...

  9. 视频教程-iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化-iOS

    iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化 小码哥教育CEO,曾开发了2个iOS的流行开源框架(MJRefresh.MJExtension),目前在国内的使用率非常高. 李 ...

最新文章

  1. Hyper-V vNext新的虚拟机配置文件、配置版本
  2. 暴力探测蓝牙设备工具redfang
  3. Jmeter加Fiddler对web项目测试
  4. iOS实现自定义的弹出视图(popView)
  5. php文件写入生成文件,PHP 文件操作类(创建文件并写入) 生成日志
  6. 全链路压测一招搞定,阿里云性能测试铂金版发布
  7. SpringBooot-基础1-构建项目
  8. Iris数据集免费下载
  9. VS2017社区版试用30天过期重新激活方法
  10. nifi集群_【NIFI】 Apache NiFI 集群搭建
  11. 时隔三月,再次向你推荐这款公文排版插件
  12. [Mac] Newifi mini路由器刷breed+Padavan固件
  13. 聊聊我在腾讯和字节工作感受
  14. 5G消息RCS富媒体通信与传统短信相比有何特色?
  15. 卜若的代码笔记-python系列-神经网络篇-第十四章:基于keras框架的男女性别识别
  16. pynq 环境搭建_PYNQ 经典项目分享之 - Hello World
  17. java List取随机几个数据的方法实现
  18. 商务智能-第二章 数据仓库
  19. bitbake.bb文件解析[转]
  20. 圣诞的荒诞小故事并记录互联网协议-五层模型

热门文章

  1. python 改文件名字_【Python】按要求修改文件名
  2. Spring Boot集成RabbitMQ发送接收JSON
  3. 【Spring Boot】Spring Boot之整合RabbitMQ并实现消息的发送和接收
  4. C++中对字符串的分割方法
  5. Linux下安装ntp时间同步服务器
  6. 【★★★★★】提高PHP代码质量的36个技巧
  7. ibatis Clob对象处理
  8. 迅雷BT下载电影99.9%不动原地循环解决方案
  9. [CTO札记]给新助理的3句话
  10. spark mysql 写_Spark-SQL从MySQL中加载数据以及将数据写入到mysql中(Spark Shell方式,Spark SQL程序)...