线程的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. 分布式系统中只有两个难题
  2. 如何衡量目标检测模型的优劣
  3. 相机标定获得内参矩阵及其他参数
  4. Android 缓存目录 Context.getExternalFilesDir()和Context.getExternalCacheDir()方法
  5. 家里网线的接法和顺序
  6. 模拟调频信号FM解调的matlab和C语言实现
  7. VC6重载字体对话框,去除颜色下拉框
  8. 32g内存 android开发,16G走开 我要32G内存的安卓手机
  9. Python中出现:RunTimeError:implement_array_function method already has a docstring.异常解决
  10. maven如何合并两个war到一个war项目中
  11. 阿里云安全掌门人肖力:企业上云,如何保证安全?| 问底中国 IT 技术演进
  12. UMLChina公众号文章精选(20220330更新精选)
  13. pysmiles:一个用于读写SMILES表达式的python库
  14. 互联网的前世今生:Web 1.0、2.0、3.0
  15. 增强 Jupyter Notebook 的功能,这里有四个妙招
  16. 多线程同步器之CountDownLatch
  17. macOS 上如何禁用 Adob​​e 后台进程,但保存 CPU、内存和网络活动呢
  18. UV-LED紫外消毒灯可以有效灭杀气溶胶中附着的新冠病毒
  19. 刘韧马杰花总:诗歌小说电影游戏都是元宇宙
  20. Python数据清洗与可视化——北京租房数据统计分析05

热门文章

  1. springcloud五大组件?注解_spring cloud实现简单的微服务架构
  2. stream实现list根据对象中多个属性分组,并取分组后最新数据
  3. ngnix的简单转发请求之server和location配置详解
  4. reply-code=404, reply-text=NOT_FOUND - no exchange
  5. JSON.toJSONString()空字段不忽略
  6. 进程与线程的四个区别
  7. MYSQL禁用与启用事件
  8. 内存二三事: Xcode 内存图、Instruments 可视化检测循环引用
  9. YAML文件结构简介
  10. 1到10所有数字相加求和