当前位置: 首页 > 网络应用技术

Java并发线程和线程池

时间:2023-03-05 21:29:59 网络应用技术

  我们经常听到一些大型男人说一些概念,例如线程不安全,什么是不安全的线程?

  为什么出现?

  让我们看一下线程的6个状态

  在运行时线程中调用wait(),part()和join()方法后,它将在等待状态线程中输入状态,将发布CPU时间胶片,并发布资源(例如锁定)。该状态将被释放。该状态将被释放。该状态将被释放。该状态将被释放。线程只能等待其他线程唤醒。

  超时等待状态与等待状态相似,但是该状态的线程无需显着唤醒。超过一段时间后,该状态的线程将自动唤醒系统

  有三种使用线程的方法,即实现可运行的接口,可可接口并继承线程类

  实际上,我们建议这种方式实现可运行的接口,因为与其他两个相比,实现可可接口的方法更加麻烦,并且继承线程类的方法是继承。我们都知道它不在java.support多重继承中,而是支持多个实现,并使用它来实现可运行的接口。

  在许多情况下,我们将在一个线程中调用另一个线程。目前,我们将使用加入方法

  在这里,我们定义一个线程类,以便我们直接继承线程类

  在这里我们定义了另一个线程类,但是在此线程类中,我们需要使用上一个线程

  最后,我们创建了另一个测试类测试

  显然,我们可以看到线程1在re -thread 2中称为线程1。

  尽管线程2首先从这里开始,但线程1在线程2中调用,线程2将等待线程1完成并继续执行

  在这里,我将简要讨论这些方法,因为这些方法不是来自JUC软件包,而是来自对象类下的对象类

  我们经常比较这两种方法,因为它们正在等待我们的理解中的线程

  实际上,它们非常不同

  Wait()方法将发布我们之前已经知道的资源(锁定),而Sleep()方法将不会发布资源(锁定)

  wait()方法基于对象,而sleep()是基于线程类的方法

  在JUC中,我们使用这些方法来实现线程之间的调度

  此方法显然是等待(),这更灵活

  说到线程池,我们必须提及线程池的七个参数。

  线程池如何创建线程?

  原始:https://juejin.cn/post/7097417085164191751