開發(fā)語(yǔ)音直播平臺(tái),需要認(rèn)清的某些概念
在陌生人社交領(lǐng)域中,通過(guò)語(yǔ)音的形式進(jìn)行互動(dòng),會(huì)更有利于社交關(guān)系的建立,因此,語(yǔ)音直播平臺(tái)開發(fā)越來(lái)越受關(guān)注。在開發(fā)語(yǔ)音直播平臺(tái)時(shí)我們不僅需要了解各個(gè)功能、掌握各個(gè)技術(shù),還需認(rèn)清某些概念,尤其是那些看似相同卻并不相同的概念。

一、需要認(rèn)清的概念
1、同步和異步
主要是用于形容語(yǔ)音直播平臺(tái)中的一次方法調(diào)用,同步主要是調(diào)用者必須等被調(diào)用的方法結(jié)束后,才能執(zhí)行后面的代碼;異步主要是指調(diào)用者無(wú)需等待被調(diào)用的方法結(jié)束,也可以執(zhí)行后面的代碼。
2、臨界區(qū)
主要表示一種公共資源或共享數(shù)據(jù),支持被多個(gè)線程使用,不過(guò)一旦臨界區(qū)中的資源被一個(gè)線程占用后,其他線程就必須等該線程完成后再使用。
3、阻塞和非阻塞
主要用于形容語(yǔ)音直播平臺(tái)中多線程間的相互影響,當(dāng)臨界區(qū)的資源被某一線程占用時(shí),其他線程就會(huì)處于掛起的狀態(tài),這就是所謂的阻塞。非阻塞主要是指沒(méi)有線程對(duì)其他線程進(jìn)行阻擋,其他線程均可執(zhí)行的狀態(tài)。
4、并行和并發(fā)
并行和并發(fā)是一對(duì)比較容易混淆的概念,并行主要是指語(yǔ)音直播平臺(tái)中的線程同時(shí)進(jìn)行,并發(fā)是指系統(tǒng)中的線程通過(guò)切換時(shí)間片的方式交替進(jìn)行,在真實(shí)的開發(fā)場(chǎng)景中,并發(fā)比并行更常用。

二、并發(fā)編程的優(yōu)缺點(diǎn)
1、優(yōu)點(diǎn)
(1)可以將多核CPU的計(jì)算能力發(fā)揮出來(lái),提升系統(tǒng)性能。
(2)像語(yǔ)音直播平臺(tái)這種業(yè)務(wù)比較復(fù)雜的系統(tǒng),使用并發(fā)編程會(huì)更有利于業(yè)務(wù)的拆分。
2、缺點(diǎn)
(1)如果是語(yǔ)音直播平臺(tái)中頻繁進(jìn)行上下文切換的場(chǎng)景中,是無(wú)法發(fā)揮出并發(fā)編程的優(yōu)勢(shì)的,不過(guò)可以通過(guò)無(wú)鎖并發(fā)編程減少上下文的切換。
(2)在并發(fā)編程中,臨界區(qū)線程的安全問(wèn)題是比較難把控的,如果把控不好就會(huì)出現(xiàn)死鎖的情況,進(jìn)而導(dǎo)致系統(tǒng)功能不可用。當(dāng)然,在語(yǔ)音直播平臺(tái)開發(fā)中為避免死鎖還是有一些可以采取的優(yōu)化方式的。

在語(yǔ)音直播平臺(tái)開發(fā)中,為提升用戶體驗(yàn)、優(yōu)化系統(tǒng)性能我們往往會(huì)引入很多技術(shù)手段,在引入這些手段的同時(shí)也可能會(huì)導(dǎo)致一些問(wèn)題的發(fā)生,不過(guò)遇到這樣的情況也不用慌張,只要認(rèn)真分析問(wèn)題總會(huì)找到解決辦法。
聲明:本文由云豹科技原創(chuàng),轉(zhuǎn)載請(qǐng)注明作者名及原文鏈接,否則視為侵權(quán)