服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 彻底搞懂Java多线程(四)

彻底搞懂Java多线程(四)

2021-09-26 00:37保护眼睛 Java教程

这篇文章主要给大家介绍了关于Java面试题之多线程和高并发的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

SimpleDateFormat非线程安全问题

实现1000个线程的时间格式化

  1. package SimpleDateFormat;
  2. import java.text.SimpleDateFormat;
  3. import java.util.Date;
  4. import java.util.concurrent.LinkedBlockingDeque;
  5. import java.util.concurrent.ThreadPoolExecutor;
  6. import java.util.concurrent.TimeUnit;
  7. /**
  8. * user:ypc;
  9. * date:2021-06-13;
  10. * time: 17:30;
  11. */
  12. public class SimpleDateFormat1 {
  13. private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("mm:ss");
  14. public static void main(String[] args) {
  15. ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10,10,100,
  16. TimeUnit.MILLISECONDS,new LinkedBlockingDeque<>(1000),new ThreadPoolExecutor.DiscardPolicy());
  17.  
  18. for (int i = 0; i < 1001; i++) {
  19. int finalI = i;
  20. threadPoolExecutor.submit(new Runnable() {
  21. @Override
  22. public void run() {
  23. Date date = new Date(finalI * 1000);
  24. myFormatTime(date);
  25. }
  26. });
  27. }
  28. threadPoolExecutor.shutdown();
  29. }
  30. private static void myFormatTime(Date date){
  31. System.out.println(simpleDateFormat.format(date));
  32. }
  33. }

产生了线程不安全的问题

延伸 · 阅读

精彩推荐