本發(fā)明涉及計(jì)算機(jī),特別是涉及一種線程處理方法、裝置、電子設(shè)備及可讀介質(zhì)。
背景技術(shù):
1、目前,為了新建線程往往會(huì)在程序代碼中設(shè)置調(diào)用命令,以調(diào)用指定系統(tǒng)調(diào)用,進(jìn)而創(chuàng)建系統(tǒng)調(diào)用。在程序執(zhí)行過(guò)程中,如果執(zhí)行到調(diào)用命令,需要觸發(fā)調(diào)用指定系統(tǒng)調(diào)用,從而創(chuàng)建新的線程。新創(chuàng)建的線程的時(shí)候,會(huì)為該線程分配線程標(biāo)識(shí)符(processidentifier,pid)。
2、現(xiàn)有技術(shù)中,以線程的pid作為查找依據(jù),需要基于線程的pid查找對(duì)應(yīng)的線程相關(guān)信息。但是,某些特殊環(huán)境下,有時(shí)會(huì)出現(xiàn)不同線程的pid重名,即查找依據(jù)重名的情況,進(jìn)而導(dǎo)致無(wú)法精確查找到線程相關(guān)信息。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明實(shí)施例提供一種線程處理方法、裝置、電子設(shè)備及可讀介質(zhì),可以解決無(wú)法精確查找到線程相關(guān)信息的問(wèn)題。
2、為了解決上述問(wèn)題,本發(fā)明實(shí)施例公開了一種線程處理方法,所述方法包括:
3、響應(yīng)于目標(biāo)程序中任一指定系統(tǒng)調(diào)用的調(diào)用命令,確定所述指定系統(tǒng)調(diào)用所創(chuàng)建的線程的命名空間標(biāo)識(shí);所述指定系統(tǒng)調(diào)用用于創(chuàng)建系統(tǒng)調(diào)用;
4、基于所述命名空間標(biāo)識(shí)為所述線程生成線程標(biāo)識(shí);所述線程標(biāo)識(shí)是全局唯一標(biāo)識(shí);
5、為所述線程設(shè)置包括所述線程標(biāo)識(shí)在內(nèi)的信息索引項(xiàng),以通過(guò)所述線程標(biāo)識(shí)查找所述線程的信息索引項(xiàng),從而獲得所述線程的線程相關(guān)信息。
6、可選地,所述確定所述指定系統(tǒng)調(diào)用所創(chuàng)建的線程的命名空間標(biāo)識(shí),包括:
7、在檢測(cè)到所述指定系統(tǒng)調(diào)用的調(diào)用參數(shù)中包括新建參數(shù)的情況下,為當(dāng)前命名空間標(biāo)識(shí)增加預(yù)設(shè)值,得到更新標(biāo)識(shí);所述新建參數(shù)用于指示為所述線程創(chuàng)建新的命名空間;
8、將所述更新標(biāo)識(shí)確定為所述線程的命名空間標(biāo)識(shí);
9、則,所述基于所述命名空間標(biāo)識(shí)為所述線程生成線程標(biāo)識(shí),包括:
10、獲取為所述線程分配的線程描述符pid,以及,獲取所述線程的命名空間標(biāo)識(shí);
11、基于所述pid以及所述命名空間標(biāo)識(shí),生成所述線程標(biāo)識(shí)。
12、可選地,所述為所述線程設(shè)置包括所述線程標(biāo)識(shí)在內(nèi)的信息索引項(xiàng),包括:
13、獲取為所述線程定義的線程相關(guān)信息作為目標(biāo)信息;
14、為所述線程生成包括所述線程標(biāo)識(shí)以及所述目標(biāo)信息在內(nèi)的信息索引項(xiàng)。
15、可選地,所述方法還包括:
16、獲取為所述線程設(shè)置的原始線程名;所述原始線程名用于表示為所述指定系統(tǒng)調(diào)用定義的線程名;
17、根據(jù)所述原始線程名以及所述線程的命名空間標(biāo)識(shí)組成目標(biāo)線程名;
18、將所述線程的線程名修改為所述目標(biāo)線程名;
19、則,所述獲取所述線程的命名空間標(biāo)識(shí),包括:
20、從所述線程名中獲取所述命名空間標(biāo)識(shí)。
21、可選地,所述根據(jù)所述原始線程名以及所述線程的命名空間標(biāo)識(shí)組成目標(biāo)線程名,包括:
22、將所述命名空間標(biāo)識(shí)轉(zhuǎn)換為字符形式;
23、按照預(yù)設(shè)格式,將所述字符形式的命名空間標(biāo)識(shí)與所述原始線程名進(jìn)行整合,得到所述目標(biāo)線程名。
24、可選地,所述方法還包括:
25、響應(yīng)于名稱獲取請(qǐng)求,獲取所述線程的當(dāng)前線程名;
26、清除所述當(dāng)前線程名中攜帶的所述線程的命名空間標(biāo)識(shí),得到所述原始線程名。
27、可選地,所述方法還包括:
28、響應(yīng)于名稱修改請(qǐng)求,獲取所述名稱修改請(qǐng)求攜帶的新的線程名;
29、將所述新的線程名以及所述線程的命名空間標(biāo)識(shí)整合為所述線程的線程名。
30、另一方面,本發(fā)明實(shí)施例公開了一種線程處理裝置,所述裝置包括:
31、確定模塊,用于響應(yīng)于目標(biāo)程序中任一指定系統(tǒng)調(diào)用的調(diào)用命令,確定所述指定系統(tǒng)調(diào)用所創(chuàng)建的線程的命名空間標(biāo)識(shí);所述指定系統(tǒng)調(diào)用用于創(chuàng)建系統(tǒng)調(diào)用;
32、第一生成模塊,用于基于所述命名空間標(biāo)識(shí)為所述線程生成線程標(biāo)識(shí);所述線程標(biāo)識(shí)是全局唯一標(biāo)識(shí);
33、第一設(shè)置模塊,用于為所述線程設(shè)置包括所述線程標(biāo)識(shí)在內(nèi)的信息索引項(xiàng),以通過(guò)所述線程標(biāo)識(shí)查找所述線程的信息索引項(xiàng),從而獲得所述線程的線程相關(guān)信息。
34、可選地,所述確定模塊,具體用于:
35、在檢測(cè)到所述指定系統(tǒng)調(diào)用的調(diào)用參數(shù)中包括新建參數(shù)的情況下,為當(dāng)前命名空間標(biāo)識(shí)增加預(yù)設(shè)值,得到更新標(biāo)識(shí);所述新建參數(shù)用于指示為所述線程創(chuàng)建新的命名空間;
36、將所述更新標(biāo)識(shí)確定為所述線程的命名空間標(biāo)識(shí);
37、所述第一生成模塊,具體用于:
38、獲取為所述線程分配的線程描述符pid,以及,獲取所述線程的命名空間標(biāo)識(shí);
39、基于所述pid以及所述命名空間標(biāo)識(shí),生成所述線程標(biāo)識(shí)。
40、可選地,所述第一設(shè)置模塊,具體用于:
41、獲取為所述線程定義的線程相關(guān)信息作為目標(biāo)信息;
42、為所述線程生成包括所述線程標(biāo)識(shí)以及所述目標(biāo)信息在內(nèi)的信息索引項(xiàng)。
43、可選地,所述裝置還包括:
44、第一獲取模塊,用于獲取為所述線程設(shè)置的原始線程名;所述原始線程名用于表示為所述指定系統(tǒng)調(diào)用定義的線程名;
45、第二生成模塊,用于根據(jù)所述原始線程名以及所述線程的命名空間標(biāo)識(shí)組成目標(biāo)線程名;
46、第二設(shè)置模塊,用于將所述線程的線程名修改為所述目標(biāo)線程名;
47、所述第一生成模塊,具體還用于:從所述線程名中獲取所述命名空間標(biāo)識(shí)。
48、可選地,所述第二生成模塊,具體用于:
49、將所述命名空間標(biāo)識(shí)轉(zhuǎn)換為字符形式;
50、按照預(yù)設(shè)格式,將所述字符形式的命名空間標(biāo)識(shí)與所述原始線程名進(jìn)行整合,得到所述目標(biāo)線程名。
51、可選地,所述裝置還包括:
52、第二獲取模塊,用于響應(yīng)于名稱獲取請(qǐng)求,獲取所述線程的當(dāng)前線程名;
53、清除模塊,用于清除所述當(dāng)前線程名中攜帶的所述線程的命名空間標(biāo)識(shí),得到所述原始線程名。
54、可選地,所述裝置還包括:
55、第三獲取模塊,用于響應(yīng)于名稱修改請(qǐng)求,獲取所述名稱修改請(qǐng)求攜帶的新的線程名;
56、整合模塊,用于將所述新的線程名以及所述線程的命名空間標(biāo)識(shí)整合為所述線程的線程名。
57、又一方面,本發(fā)明實(shí)施例公開了一種電子設(shè)備,包括:處理器、存儲(chǔ)器、通信接口和通信總線,所述處理器、所述存儲(chǔ)器和所述通信接口通過(guò)所述通信總線完成相互間的通信;所述存儲(chǔ)器用于存放至少一可執(zhí)行指令,所述可執(zhí)行指令使所述處理器執(zhí)行前述的方法。
58、本發(fā)明實(shí)施例還公開了一種機(jī)器可讀介質(zhì),其上存儲(chǔ)有指令,當(dāng)由一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得所述處理器執(zhí)行如上述所述的方法。
59、本發(fā)明實(shí)施例包括以下優(yōu)點(diǎn):本發(fā)明實(shí)施例提供的線程處理方法中,響應(yīng)于目標(biāo)程序中任一指定系統(tǒng)調(diào)用的調(diào)用命令,確定指定系統(tǒng)調(diào)用所創(chuàng)建的線程的命名空間標(biāo)識(shí);指定系統(tǒng)調(diào)用用于創(chuàng)建系統(tǒng)調(diào)用?;诿臻g標(biāo)識(shí)為線程生成線程標(biāo)識(shí);線程標(biāo)識(shí)是全局唯一標(biāo)識(shí)。為線程設(shè)置包括線程標(biāo)識(shí)在內(nèi)的信息索引項(xiàng),以通過(guò)線程標(biāo)識(shí)查找線程的信息索引項(xiàng),從而獲得線程的線程相關(guān)信息。這樣,由于線程標(biāo)識(shí)全局唯一,即線程相關(guān)信息的查找依據(jù)不重復(fù),避免了不同線程的查找依據(jù)重名的情況,因此,可以避免無(wú)法精確查找到線程相關(guān)信息的問(wèn)題。