线程

java 的线程相对c,c++来说基本是类似的,尤其是使用lamba都是非常快速的就能启动一个线程,相对于使用api来说,简化了很多。有几种方式可以使用:

1、使用静态内部类

java的线程类可以直接从Runnable上继承,实现 run()函数即可

static Map<String,String> v_map = new ConcurrentHashMap<String,String>();static class th1 implements Runnable{public void run() {for(int i = 0; i < 10; i ++) {  v_map.put(String.valueOf(i), String.valueOf(i));  }  //遍历值  for (String value : v_map.values()) {System.out.println("thread1 value = " + value);}}}

调用,直接new Thread ,调用方法start().

new Thread(new th1()).start();

2、直接new Thread

这种方式更为方便,不用写一个class,直接启动线程即可,如果没有其他需要交互的变量和方法,这种方式更为直接。

     new Thread(new Runnable(){public void run() {for (String value : v_map.values()) {System.out.println("thread2 value = " + value);}}}).start();

3、lamba简化写法

new Thread(()->{for (String value : v_map.values()) {System.out.println("thread3 value = " + value);}
}).start();

()->的写法开始流行了,这样看起来和用起来更简单了是不是?
下面是所有代码,使用ConcurrentHashMap做实验,多个线程同时操作一个ConcurrentHashMap来演示:

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;public class threadclass {static Map<String,String> v_map = new ConcurrentHashMap<String,String>();static class th1 implements Runnable{public void run() {for(int i = 0; i < 10; i ++) {  v_map.put(String.valueOf(i), String.valueOf(i));  }  //遍历值  for (String value : v_map.values()) {System.out.println("thread1 value = " + value);}}}public static void main(String[] args) {new Thread(new th1()).start();new Thread(new Runnable(){public void run() {for (String value : v_map.values()) {System.out.println("thread2 value = " + value);}}}).start();//简化 lambdanew Thread(()->{for (String value : v_map.values()) {System.out.println("thread3 value = " + value);}}).start();}
}

输出:
thread1 value = 0
thread1 value = 1
thread1 value = 2
thread1 value = 3
thread1 value = 4
thread2 value = 0
thread2 value = 1
thread1 value = 5
thread2 value = 2
thread2 value = 3
thread1 value = 6
thread2 value = 4
thread2 value = 5
thread1 value = 7
thread1 value = 8
thread2 value = 6
thread2 value = 7
thread1 value = 9
thread2 value = 8
thread2 value = 9
thread3 value = 0
thread3 value = 1
thread3 value = 2
thread3 value = 3
thread3 value = 4
thread3 value = 5
thread3 value = 6
thread3 value = 7
thread3 value = 8
thread3 value = 9

java 如何秒速写一个线程启动相关推荐

  1. OpenRTMFP/Cumulus Primer(20)Cumulus的一个线程启动 Bug

    OpenRTMFP/Cumulus Primer(20)Cumulus的一个线程启动 Bug 作者:柳大·Poechant(钟超) 邮箱:zhongchao.ustc#gmail.com(# -> ...

  2. java释放锁_java – 一个线程在完成后释放锁吗?

    简单测试可能会显示在线程终止时未释放锁定: import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.Lock ...

  3. 【java】Thread.start 它是怎么让线程启动的呢

    1.概述 转载:面经手册 · 第19篇<Thread.start() ,它是怎么让线程启动的呢?> 可悲可叹,这个问题,6年了,我才第一次知道. 线程启动分析 new Thread(() ...

  4. Java直接杀死线程方法_如何杀死一个线程?

    1.简介 在这篇短文中,我们将讲述一下java中如果结束一个线程-事实上,这并没有想象中的那么简单,因为 Thread.stop()方法已经被废弃啦. 根据Oracle的解释,stop()方法可以导致 ...

  5. 深入Java虚拟机(六)线程同步

    可以在语言级支持多线程是Java语言的一大优势,这种支持主要集中在同步上,或调节多个线程间的活动和共享数据.Java所使用的同步是监视器. 监视器Monitor Java中的监视器支持两种线程:互斥和 ...

  6. 如何实现java主线程等待子线程执行完毕之后再执行?

    本文转自:问题:如何实现java主线程等待子线程执行完毕之后再执行? - jseven - 博客园 点击关注强哥,查看更多精彩文章呀 工作总往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完 ...

  7. 让Java程序只运行一个实例

    一个程序可以在内存里面存在多个运行实例,比如,你可以打开多个微软的Word程序.但是,有些时候我们需要控制程序运行的实例只有一个,也就是说,该程序同一时刻在内存里面运行的只有一个实例.这样当这个程序在 ...

  8. java中什么是守护线程_什么是Java的守护线程?

    欢迎大家搜索"小猴子的技术笔记"关注我的公众号,有问题可以及时和我交流. 守护线程是一种支持性线程,主要用于后台调度以及支持性的工作.守护线程具备自动结束生命周期的特性,而非守护线 ...

  9. Java并发编程—Thread类的start()方法是如何启动一个线程的?

    目录 一:Java线程介绍 二:Java线程入口分析 三:Java线程的创建 四:总结 周末抽了点时间,研究了下HotSpot是如何创建Java线程的,顺便总结一下.文中引用的源码里删除很多细节,只保 ...

最新文章

  1. 中科院基因组所高远组诚聘生物信息学方向助理/副研及博士
  2. SAP零售行业解决方案初阶 4 – 维护品类
  3. PADS Router VX.2.3 设置光标的类型
  4. 【Python学习系列二十五】数据结构-有向图绘制
  5. SourceTree安装破姐添加SSH KEY以及拉取代码教程(附资源下载)
  6. 直播预告丨揭秘神策数据销售方法论,一起向 Top Sales 迈进!
  7. nv4_disp.dll 蓝屏
  8. 关于项目中的日期提交
  9. GraphQL 到底有什么魔力?
  10. 分布式数据库DDM Sidecar模式负载均衡
  11. NTV Media Server G3流媒体服务器搭建经验
  12. 排球计分程序功能说明书
  13. ping 丢包 网络摄像头_Ping丢包故障案例
  14. windows 网卡驱动安装
  15. QStringLiteral(str)
  16. weixin公众号页面返回上一层_《解决微信内置浏览器返回上一页强制刷新问题方法》...
  17. 计算机网络三网,七律四首(手机、电视、计算机网络、三网融合)
  18. [ML](HMM、MRF、CRF)
  19. 亥姆霍兹线圈主要用途概述
  20. 用计算机弹奏音乐的数字乐谱,抖音计算器音乐

热门文章

  1. 机器人操作系统ROS微信群, 欢迎加我微信: Jdrobots 技术相互学习交流(加我请备注ROS,谢谢!) 。
  2. url传递中文的解决方案总结
  3. 一些sql语句的详细解释
  4. 1599元!荣耀Play6T Pro今日首销:史上最薄5G手机!
  5. 一年超20万人次在抖音志愿登记器官捐献
  6. 520 丁磊向全国英语老师“表白”:再送有道词典笔
  7. 官宣了!百度36亿美元收购YY直播,一个用户“值”87.4美元
  8. 苹果鼓励美国员工赴中国出差 一天500美元奖金
  9. 1-9月全国快递服务企业业务量累计完成561.4亿件 同比增长27.9%
  10. 搜狗520甜蜜告白攻势:爱的心动 让她看见