當前位置:編程學習大全網 - 網站源碼 - springboot中@Scheduled 和@Async的使用

springboot中@Scheduled 和@Async的使用

首先,需要了解@Scheduled 和@Async這倆註解的區別:

@Scheduled 任務調度註解,主要用於配置定時任務;springboot默認的調度器線程池大小為 1。

註意:在spring中的@schedule默認的線程池中只有壹個線程,所以如果在多個方法上加上@schedule的話,此時就會有多個任務加入到延時隊列中,因為只有壹個線程,所以任務只能被壹個壹個的執行

@Async 任務異步執行註解,主要用於方法上,表示當前方法會使用新線程異步執行;springboot默認執行器線程池大小為100。

此註解會將這個任務放入到壹個異步線程中執行,不會阻塞主線程,可以用在壹些比較耗時並且不用考慮返回值的壹些操作中

使用:

2.在定時任務上加上註解

可以看到控制臺輸出已經是異步執行了

總結

1 默認@schedule 線程池默認只有壹個線程,多個任務時串行 串行

2 默認@schedule + @Aysnc 多個任務之間串行,單個任務非阻塞異步執行 並行+異步

  • 上一篇:wifi左上角有個6是什麽意思?
  • 下一篇:計時指示器源代碼
  • copyright 2024編程學習大全網