同步器的主作用是什么
【太平洋汽車】同步器的主作用是使變速器接合套與待嚙合的齒圈迅速同步,縮短換擋時間,并防止在同步前嚙合而產(chǎn)生換擋沖擊,讓汽車更加平穩(wěn)的行駛。
前言多線程和并發(fā)問題是Java技術(shù)面試中面試官比較喜歡問的問題之一。在這里,從面試的角度列出了大部分重要的問題,但是你仍然應(yīng)該牢固的掌握Java多線程基礎(chǔ)知識來對應(yīng)日后碰到的問題。
一、基礎(chǔ)知識
1. 為什么要使用并發(fā)編程充分利用多核CPU的計算能力:通過并發(fā)編程的形式可以將多核CPU的計算能力發(fā)揮到極致,性能得到提升方便進行業(yè)務(wù)拆分,提升系統(tǒng)并發(fā)能力和性能:在特殊的業(yè)務(wù)場景下,先天的就適合于并發(fā)編程?,F(xiàn)在的系統(tǒng)動不動就要求百萬級甚至千萬級的并發(fā)量,而多線程并發(fā)編程正是開發(fā)高并發(fā)系統(tǒng)的基礎(chǔ),利用好多線程機制可以大大提高系統(tǒng)整體的并發(fā)能力以及性能。面對復(fù)雜業(yè)務(wù)模型,并行程序會比串行程序更適應(yīng)業(yè)務(wù)需求,而并發(fā)編程更能吻合這種業(yè)務(wù)拆分 。
2. 多線程應(yīng)用場景
3. 并發(fā)編程有什么缺點并發(fā)編程的目的就是為了能提高程序的執(zhí)行效率,提高程序運行速度,但是并發(fā)編程并不總是能提高程序運行速度的,而且并發(fā)編程可能會遇到很多問題,比如**:內(nèi)存泄漏、上下文切換、線程安全、死鎖**等問題。
4. 并發(fā)編程三個必要因素是什么?
并發(fā)編程三要素(線程的安全性問題體現(xiàn)在):原子性:原子,即一個不可再被分割的顆粒。原子性指的是一個或多個操作要么全部執(zhí)行成功要么全部執(zhí)行失敗。
可見性:一個線程對共享變量的修改,另一個線程能夠立刻看到。(synchronized,volatile)有序性:程序執(zhí)行的順序按照代碼的先后順序執(zhí)行。(處理器可能會對指令進行重排序)出現(xiàn)線程安全問題的原因:線程切換帶來的原子性問題緩存導(dǎo)致的可見性問題編譯優(yōu)化帶來的有序性問題解決辦法:JDK Atomic開頭的原子類、synchronized、LOCK,可以解決原子性問題synchronized、volatile、LOCK,可以解決可見性問題Happens-Before 規(guī)則可以解決有序性問題
5. Java 程序中怎么保證多線程的運行安全?
6. 并行和并發(fā)有什么區(qū)別?
7. 什么是多線程多線程:多線程是指程序中包含多個執(zhí)行流,即在一個程序中可以同時運行多個不同的線程來執(zhí)行不同的任務(wù)。
8. 多線程的好處可以提高 CPU 的利用率。在多線程程序中,一個線程必須等待的時候,CPU 可以運行其它的線程而不是等待,這樣就大大提高了程序的效率。也就是說允許單個程序創(chuàng)建多個并行執(zhí)行的線程來完成各自的任務(wù)。
9. 多線程的劣勢:線程也是程序,所以線程需要占用內(nèi)存,線程越多占用內(nèi)存也越多;多線程需要協(xié)調(diào)和管理,所以需要 CPU 時間跟蹤線程;線程之間對共享資源的訪問會相互影響,必須解決競用共享資源的問題。
(圖/文/攝:太平洋汽車 問答叫獸)
>>點擊查看今日優(yōu)惠<<