題目:實現乙個佇列
佇列的應用場景為:
乙個生產者執行緒將int型別的數入列,乙個消費者執行緒將int型別的數出列。
這段代段太美了,值得儲存、
#include #include using namespace std;
templateclass circular
bool empty()
bool full()
void waitfull() }
void waitempty() }
void push(const t &t)
bool pop(t &t)
t pop() };
templateclass lockedqueue
~lockedqueue()
void push(const t &t)
bool pop(t &t)
t pop()
};void *produce_function(void *arg)
}int main()
grep(global search regular expression and print out the line),全面搜尋正規表示式並把行列印出來)是一種強大的文字搜尋工具,它
能使用正則 表示式搜尋文字,並把匹配的行列印出來
grep常用的用法
[root@www ~]# grep [-acinv] [--color=auto] '搜尋字串' filename比如: 將/etc/passwd,有出現root的行取出來選項與引數:
-a :將 binary 檔案以 text 檔案的方式搜尋資料
-c :計算找到 '搜尋字串' 的次數
-i :忽略大小寫的不同,所以大小寫視為相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 '搜尋字串' 內容的那一行!
grep root /etc/passwd
將/etc/passwd,將沒有出現root的行取出來 grep -v root /etc/passwd
將/etc/passwd,將沒有出現root和nologin的行取出來 grep -v root /etc/passwd | grep -v nologin
你可以在~/.bashrc內加入這行 alias grep=' grep --color=auto' 在 source ~/.bashrc來立即生效
關鍵字的前3 用 -a3 後三行 -b3
grep正規表示式
grep -n 't[ae]st' regular_express.txt 其實裡面不論有幾個位元組,它都只代表某乙個位元組
字元類的反向擇 [^] :
行首與行尾位元組 ^ $
[root@www ~]# grep -n '^the
'regular_express.txt
如果我想要開頭是小寫位元組的那一行就列出呢?可以這樣:
grep -n '^[a-z]
'regular_express.txt
如果我不想要開頭是英文本母,則可以是這樣:
[root@www ~]# grep -n '^ 符號,在字元類符號(括號)之內與之外是不同的! 在 內代表『反向選擇』,在 之外則代表定位在行首的意義!^[^a-za-z]
'regular_express.txt
那如果我想要找出來,行尾結束為小數點 (.) 的那一行:
[root@www ~]# grep -n ',因為小數點具有其他意義(底下會介紹),所以必須要使用轉義字元(\)來加以解除其特殊意義!\.$'
regular_express.txt
任意乙個位元組 . 與重複位元組 *
. (小數點):代表『一定有乙個任意位元組』的意思;* (星號):代表『重複前乙個字元, 0 到無窮多次』的意思,為組合形態
『o*』代表的是:『擁有空位元組或乙個 o 以上的位元組』
如果我想要字串開頭與結尾都是 g,但是兩個 g 之間僅能存在至少乙個 o
[root@www ~]# grep -n 'goo*g
'regular_express.txt
如果我想要找出『任意數字』的行?因為僅有數字,所以就成為:
[root@www ~]# grep -n '[0-9][0-9]*
'regular_express.txt
限定連續 re 字元範圍 {}
我們可以利用 . 與 re 字元及 * 來配置 0 個到無限多個重複位元組, 那如果我想要限制乙個範圍區間內的重複位元組數呢?
舉例來說,我想要找出兩個到五個 o 的連續字串,該如何作?這時候就得要使用到限定範圍的字元 {} 了。 但因為 的符號在 shell 是有特殊意義的,因此, 我們必須要使用字元 \ 來讓他失去特殊意義才行。 至於 {} 的語法是這樣的,假設我要找到兩個 o 的字串,可以是:
[root@www ~]# grep -n 'o\'regular_express.txt
假設我們要找出 g 後面接 2 到 5 個 o ,然後再接乙個 g 的字串,他會是這樣:
[root@www ~]# grep -n 'go\g
'regular_express.txt
find 命令:
格式: find pathname -options [-print -exec -ok]
3.命令引數:
pathname: find命令所查詢的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
-print: find命令將匹配的檔案輸出到標準輸出。
-exec: find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' \;,注意和\;之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每乙個命令之前,都會給出提示,讓使用者來確定是否執行。
命令選項:
3.命令引數:
pathname: find命令所查詢的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
-print: find命令將匹配的檔案輸出到標準輸出。
-exec: find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' \;,注意和\;之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每乙個命令之前,都會給出提示,讓使用者來確定是否執行。
佇列,生產者消費者模型
from multiprocessing import process,lock import os,time,json with open user w encoding utf 8 as f dic json.dump dic,f def search with open user r enco...
生產者消費者問題 JAVA模擬
public class producerconsumer 緩衝區初始化 public static void init static class monitor else catch interruptedexception e public synchronized void removepro...
程序模擬生產者 消費者問題
這裡我只是簡單實現了這個經典問題的思路與想打,並且書寫的程式也是能正確的執行出合理的答案,希望今後還可以改進程式使之更加完善 思路描述 1.生產者程序 產生乙個資料,當要送入緩衝區的時候,要檢查緩衝區是否已滿,若未滿,則可將資料送入緩衝區,並通知消費者程序,否則等待 2.對於消費者程序 當它去取資料...