@異步

動態 列表
@zhaozixing

SpringBoot使用異步@EnableAsync、@Async

Spring boot通過@EnableAsync、@Async配合來實現異步調用的。 舉一個理髮店的例子吧,比如3位理髮師,5位顧客來理髮。 下面上代碼 通過@EnableAsync、@Configuration配置一個默認的線程池,充當理髮師 CorePoolSize(3);即3位理髮師 import org.springframework.aop.interceptor.AsyncE

zhaozixing 頭像

@zhaozixing

昵稱 zhaozixing

@chanmufeng

異步阻塞IO是什麼鬼?

這篇文章我們來聊一個很簡單,但是很多人往往分不清的一個問題,同步異步、阻塞非阻塞到底怎麼區分? 開篇先問大家一個問題:IO多路複用是同步IO還是異步IO? 先思考一下,再繼續往下讀。 鉅著《Unix網絡編程》將IO模型劃分為5種,分別是 阻塞IO 非阻塞IO IO複用 信號驅動IO 異步IO 個人認為這麼分類並不是很好,因為從字面上理解阻塞IO和非阻塞IO就已經是數學意義上的全集了

chanmufeng 頭像

@chanmufeng

昵稱 蟬沐風

@taozi_60b0b3c71b1a8

IO:阻塞和非阻塞、同步和異步

阻塞和非阻塞 阻塞的時候線程會被掛起 阻塞: 當數據還沒準備好時,調用了阻塞的方法,則線程會被掛起,會讓出CPU時間片,此時是無法處理過來的請求,需要等待其他線程來進行喚醒,該線程才能進行後續操作或者處理其他請求。 非阻塞: 意味着,當數據還沒準備好的時候,即便我調用了阻塞方法,該線程也不會被掛起,後續的請求也能夠被處理。 同步 同步和異步跟串行和並行非常形似。 假設在一個場景下:完成一個大任務需

taozi_60b0b3c71b1a8 頭像

@taozi_60b0b3c71b1a8

昵稱 Java架構師

@jamesfancy

Loading ... done

引子 在前面界面開發的過程中,為了增強在與後端交互過程中的用户體驗,通常會顯示 Loading 動畫。Loading 動畫會在與後端交互結束的時候關閉。這是一個很常規的需求,技術實現也不復雜。 showLoading(); axios.request(...) .then(...) .finally(() = hideLoading()); Node.js 和大部分瀏覽器都在 20

jamesfancy 頭像

@jamesfancy

昵稱 邊城

@gongzhengyang

rust使用hashmap存儲函數並調用

背景 在rust 1.67.1 (d5a82bbd2 2023-02-07) 版本測試正常 使用rust的hashmap存儲i32為key, 函數作為value, 當查詢某個key如果存在具體的函數則調用 支持異步函數存儲與調用 主要方法 如果類型不同,則需要包一層Box,把存儲的內容放到堆內存上,保證編譯器可以正常計算內存大小,主要是針對存儲在棧上的內存大小 如果是異步方法,由於異步函數沒

gongzhengyang 頭像

@gongzhengyang

昵稱 龔正陽

@journey_64224c9377fd5

大話網絡通信

1、術語 併發 vs 並行 併發和並行是相關的概念,但有一些小的區別。併發意味着兩個或多個任務正在取得進展,即使它們可能不會同時執行。例如,這可以通過時間切片來實現,其中部分任務按順序執行,並與其他任務的部分混合。另一方面,當執行的任務可以真正同時進行時,就會出現並行 簡單説啓動一個線程在一個core上就是並行,啓動兩個線程在一個core上就是併發 異步 vs 同步 如果調用者

@cuicui_623c4b541e91e

如何優雅地組織Rust項目中的異步代碼?

概要 很多使用過Async Rust的人都可能有過被其要求的約束所困擾的經歷,例如,spawned task有'static的要求,MutexGuard不能跨越.await,等等。克服這些約束需要仔細地設計代碼結構,很可能會導致晦澀和嵌套的代碼,這對開發人員和審查人員都是一種挑戰。在這篇文章中,我將首先列出我在編寫async Rust代碼時的一些痛點。然後,我將指出我們真正需要異步代碼的場景,並討

cuicui_623c4b541e91e 頭像

@cuicui_623c4b541e91e

昵稱 Datenlord

@kuanrongdeshanyang

Python多線程編程入門指南

導語:在許多應用場景中,我們需要同時執行多個任務。Python 提供了多線程(multithreading)支持,可以讓我們更高效地完成任務。在本文中,我們將探討 Python 中的多線程編程基礎知識,並通過一個簡單示例演示如何使用它。 一、併發編程簡介 併發編程是一種編程範式,允許多個任務在同時執行。在多核處理器和多處理器系統中,這種方法可以顯著提高程序的執行效率。Python 提供了多種併發編

kuanrongdeshanyang 頭像

@kuanrongdeshanyang

昵稱 小小張説故事

@data_ai

Bean異步初始化,讓你的應用啓動飛起來

如果你的系統啓動耗時250s以上,文章思路應該可以幫到你。 一、背景 近期,在做應用啓動提速相關工作的過程中,我們發現,應用啓動速度主要的瓶頸在於bean的初始化過程(init,afterPropertiesSet方法的耗時)。很多中間件bean的初始化邏輯涉及到網絡io,且在沒有相互依賴的情況下串行執行。將這一部分中間件bean進行異步加載,是提升啓動速度的一個探索方向。 二、解決方案 自動

data_ai 頭像

@data_ai

昵稱 數據庫知識分享者

@ligaai

SaaS 出海,如何搭建國際化服務體系?(三)

防噎指南:這可能是你看到的乾貨含量最高的 SaaS 出海經驗分享,請準備好水杯,放肆食用(XD。 當越來越多中國 SaaS 企業選擇開啓「國際化」副本,出海便儼然成為國內 SaaS 的新·角鬥場。 LigaAI 觀察到,出海浪潮助生了許多「Day One 就做國際化」的產品和團隊,而出海大軍中也不乏在國內已經完成 PMF 的熟悉面孔。一個主要由中國人構成的團隊在推進海外產品落地的過程中,可能

ligaai 頭像

@ligaai

昵稱 LigaAI

@bug1412

C++高併發異步定時器的實現

各位開發者好,久違的Workflow架構系列追更了~ 在C++高併發場景,定時功能的實現有三大難題:高效、精準、原子性。 除了定時任務隨時可能到期、而進程隨時可能要退出之外,最近Workflow甚至為定時任務增加了取消功能,導致任務可能被框架調起之前被用户取消,或者創建之後不想執行直接刪除等情況,而這些情況大部分來説都是由不同線程執行的,因此其中的併發處理可謂教科書級別! 那麼就和大家一起看看Wo

bug1412 頭像

@bug1412

昵稱 1412

@invalidnull

關於 JavaScript 的異步操作

處理 JavaScript 中的異步操作和回調函數在實際的開發工作中,幾乎是每一個前端開發人員必備的基本技能,特別是在處理網絡請求、文件讀取、定時任務等場景下。在JavaScript 中,由於其單線程執行模型,異步操作是通過事件循環來實現的,而回調函數則是一種常見的處理異步操作結果的方式。 首先,我們需要了解什麼是異步操作。異步操作指的是一段代碼執行時,不會阻塞後續代碼的執行,而是在後台執行,當操

invalidnull 頭像

@invalidnull

昵稱 註銷

@spacewander

在 OpenResty 裏實現異步的流式代理

七層代理經常會有需要承接流式業務的需求,比如通過 SSE 來代理推理服務返回的結果。有些時候,我們還需要在流式處理過程中進行異步操作,比如訪問其他服務來豐富原來的輸入輸出。 OpenResty 支持在流式處理中做異步操作,但現行的方法有一些缺陷。關於如何更好地做異步的流式代理,我有一些未經驗證的想法。可惜現在我已不做 OpenResty 相關的操作,所以一直沒機會把這個想法付之實現。為了不讓這個點

spacewander 頭像

@spacewander

昵稱 spacewander

@jinyeyoudianerliang

RocketMQ 消息丟失及其處理方式

在高併發系統中,RocketMQ作為消息隊列被廣泛使用,但在某些極端情況下,可能會遇到消息丟失的問題。消息丟失通常是由以下幾種原因導致的: 1. 消息丟失的原因 Producer端發送消息失敗: 由於網絡問題或RocketMQ服務端壓力過大,可能出現消息發送失敗。如果沒有重試機制或補償機制,消息可能丟失。 Broker端存儲問題: 如果Rocke

jinyeyoudianerliang 頭像

@jinyeyoudianerliang

昵稱 今夜有點兒涼

@xiongshihubao

@Async的用法和示例

@Async 註解的用法和示例 [TOC] 背景 通常,在Java中的方法調用都是同步調用,比如在A方法中調用了B方法,則在A調用B方法之後,必須等待B方法執行並返回後,A方法才可以繼續往下執行。這樣容易出現的一個問題就是如果B方法執行時間較長,則可能會導致調用A的請求響應遲緩,為了解決這種問題,可以使用Spirng的註解@Async來用異步調用的方式處理,當然也會有別的多線程方式解決此類問題

xiongshihubao 頭像

@xiongshihubao

昵稱 醉舞經閣

@chen_67f9ccbe6f07b

Spring @Async 內部調用失效問題:五種解決方案實戰分析

是不是遇到過這種情況:你給一個方法加上了@Async 註解,期待它能異步執行,結果發現它還是同步執行的?更困惑的是,同樣的註解在其他地方卻能正常工作。這個問題困擾了很多 Java 開發者,尤其是當你在同一個類中調用帶有@Async 註解的方法時。今天,我們就來深入解析這個問題的原因,並提供多種實用的解決方案。 Spring @Async 的正常工作原理 在討論內部調用問題前,我們先了解一下@Asy

chen_67f9ccbe6f07b 頭像

@chen_67f9ccbe6f07b

昵稱 異常君

@gongzhengyang

Actor併發系統説明與使用

簡介 Actor模型是一種並行計算模型,提供了一種用於構建併發、分佈式系統的抽象方法 在Actor模型中,計算被表示為獨立的、輕量級的計算單元,稱為Actor,可以發送和接收消息並進行本地計算 作為一種通用的消息傳遞編程模型,被廣泛用於構建大規模可伸縮分佈式系統 核心思想是獨立維護隔離狀態,並基於消息傳遞實現異步通信 Actor模型組成 存儲:每個 Actor 持有一個郵箱(mailbox),

gongzhengyang 頭像

@gongzhengyang

昵稱 龔正陽

@vistart

Python3異步編程詳解:從原理到實踐

1. Python異步編程概述 1.1 什麼是異步編程? 異步編程是一種併發編程範式,它允許程序在等待某些操作(如I/O操作)完成時繼續執行其他任務,而不是阻塞等待。Python3.5引入的async/await語法讓異步編程變得更加簡潔和直觀。 1.2 同步 vs 異步 讓我們通過一個簡單的例子來理解兩者的區別: # 同步方式 import time def sync_task(name, d

vistart 頭像

@vistart

昵稱 vistart

@shanliangdeshou_ccwzfd

併發設計模式實戰:Future/Promise

今天為大家帶來的是併發設計模式實戰系列,第十五章Future/Promise,廢話不多説直接開始~ 一、核心原理深度拆解 1. 異步計算雙階段模型 ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Task │───│ Future │───│ Callback │ │ Submission │───│

shanliangdeshou_ccwzfd 頭像

@shanliangdeshou_ccwzfd

昵稱 善良的匕首_ccWZFD

@xiaohe0601

🔒 JavaScript 不是單線程嗎?怎麼還能上“鎖”?!

在 JavaScript 日常開發中,經常會遇到這樣的情況:多個異步任務需要同時訪問或修改同一個資源。這個資源可能很簡單,比如內存中的一個變量;也可能複雜一些,比如一份配置文件、一條數據庫記錄或者是某個外部服務的接口調用,只要它是共享的,就有可能被不同的任務同時操作。 問題在於,異步任務不像同步代碼那樣一行一行地按順序執行,而是可能同時進行。如果沒有任何機制來協調它們的先後順序,就會出現混亂:有的

xiaohe0601 頭像

@xiaohe0601

昵稱 xiaohe0601