并发编程有什么缺点?

  1. Java 中的线程对应是操作系统级别的线程,线程数量控制不好,频繁的创建、销毁线程和线程间的切换,比较消耗内存和时间。
  2. 容易带来线程安全问题。如线程的可见性、有序性、原子性问题,会导致程序出现的结果与预期结果不一致。
  3. 多线程容易造成死锁、活锁、线程饥饿等问题。此类问题往往只能通过手动停止线程、甚至是进程才能解决,影响严重。
  4. 对编程人员的技术要求较高,编写出正确的并发程序并不容易。
  5. 并发程序易出问题,且难调试和排查;问题常常诡异地出现,又诡异地消失。