1、C語言生產者消費者進程代碼問題
實現一個隊列CQueue CQueue提供兩個公有成員函數 addTail():往隊列尾部增加一個元素 removeHead():讀出並移除隊列的第一個元素 生產者:兩個線程通過調用CQueue::addTail()往隊列中增加元素 消費者:一個線程通過調用CQueue::removeHead()從隊列中讀取元素 #include <iostream> #include <list> #include <windows.h> #include <process.h> using namespace std; #define P(sem) WaitForSingleObject(sem,INFINITE) #define V(sem) ReleaseSemaphore(sem,1,NULL) class CQueue { public: void addTail();//往隊列尾部增加一個元素 void removeHead();//讀出並移除隊列的第一個元素 private: list<int> L; }; CQueue buffer;//全局的緩沖區 const int buf_size = 10;//緩沖區大小 static int GOODS_ID = 0;//商品序號 const int procers = 3;//生產者數量 const int consumers = 8;//消費者數量 void ProcerThread(void* param); void ConsumerThread(void* param); HANDLE empty,occupy,op_mutex; int main() { int i; int p_id[procers],c_id[consumers];
2、使用信號量實現有限緩沖區的生產者和消費者問題(使用fork(),semget()等函數,能在GCC下運行)
看我下面的代碼, 父進程是消費者,子進程是生產者。
REPEATS 決定總共生產的次數 (可以自己修改)
CONSUMER_SPEED 決定消費的速度 (越大越慢,可以自己修改)
PRODUCER_SPEED 決定生產的速度 (越大越慢,可以自己修改)
我的例子里,生產者生產一個隨機數。另外消費速度比生產速度慢,所以可以看到輸出中,+++ (生產者) 開頭的出現的比--- (消費者)多,當生產者結束後,就只有 --- 列印了。
對這個程序由什麼問題,可以baidu hi我。在linux/unix下用 gcc 編譯。
#include <stdio.h>
#include <unistd.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
#include <sys/sem.h>
#include <sys/shm.h>
#include <sys/stat.h>
#define REPEATS (10) /* count of proction/consumption */
#define MAX_BUFFER_SIZE (8)
typedef struct
{
int bottom;
int top;
int data[MAX_BUFFER_SIZE];
} STRUCT_BUFFER;
STRUCT_BUFFER * pBuffer = NULL;
/* Define speed of consumer/procer, change them as u like */
#define PRODUCER_SPEED (1) /* 1/sec */
#define CONSUMER_SPEED (2) /* 1/2sec */
int sem_consume; /* consumer sem */
int sem_proce; /* procer sem */
int shm_buffer; /* shared buffer */
#define FLAG (IPC_CREAT | S_IRWXU)
/* Init semphores & shared buffer */
void init()
{
union semun {
int val;
struct semid_ds *buf;
unsigned short *array;
} arg;
shm_buffer = shmget(0x1111, sizeof(STRUCT_BUFFER), FLAG);
pBuffer = shmat(shm_buffer, 0, 0);
memset(pBuffer, 0, sizeof(STRUCT_BUFFER));
sem_consume = semget(0x2222, 1, FLAG);
arg.val = 0;
if (semctl(sem_consume, 0, SETVAL, arg) < 0)
{
perror("Consumer");
exit(1);
}
sem_proce = semget(0x3333, 1, FLAG);
arg.val = MAX_BUFFER_SIZE;
if (semctl(sem_proce, 0, SETVAL, arg) < 0)
{
perror("Procer");
exit(1);
}
}
/* destroy semphores & shared buffer */
void deinit()
{
shmctl(shm_buffer, IPC_RMID, NULL);
semctl(sem_consume, 0, IPC_RMID);
semctl(sem_proce, 0, IPC_RMID);
}
int main()
{
int pid, i;
struct sembuf sbuf;
init();
printf("Start fork...\n");
pid = fork();
if (pid > 0)
{
/* parent process, consumer */
for (i = 0; i < REPEATS; i++)
{
/* Try decrementing 1 from consumer */
sbuf.sem_num=0;
sbuf.sem_op=-1;
sbuf.sem_flg=0;
semop(sem_consume, &sbuf, 1);
/* OK */
printf("Consumer get %6d\n", pBuffer->data[pBuffer->bottom]);
pBuffer->bottom = (pBuffer->bottom+1)%MAX_BUFFER_SIZE;
/* Try incrementing 1 to procer */
sbuf.sem_op = 1;
semop(sem_proce, &sbuf, 1);
sleep(CONSUMER_SPEED);
}
wait(0);
shmdt(pBuffer);
}
else if (pid == 0)
{
srand(time(NULL));
/* child process, procer */
for (i = 0; i < REPEATS; i++)
{
/* Try decrementing 1 from procer */
sbuf.sem_num=0;
sbuf.sem_op=-1;
sbuf.sem_flg=0;
semop(sem_proce, &sbuf, 1);
/* OK */
pBuffer->data[pBuffer->top] = (rand()%1000)*1000 + i + 1;
printf("Procer put %6d\n", pBuffer->data[pBuffer->top]);
pBuffer->top = (pBuffer->top+1)%MAX_BUFFER_SIZE;
/* Try incrementing 1 to consumer */
sbuf.sem_op = 1;
semop(sem_consume, &sbuf, 1);
sleep(PRODUCER_SPEED);
}
shmdt(pBuffer);
exit(0);
}
deinit();
return 0;
}
3、sem某個關鍵詞一天的總消費金額怎麼算?
通過關鍵詞每次點擊來收費,通過設置關鍵詞的出價來設置。
百度競價關鍵詞點擊價格=(下一名出價*下一名質量度)/你的關鍵詞質量度+0.01元
1.關鍵詞的點擊價格只會比出價低
2.關鍵詞排在所有推廣結果的最後一名或是唯一一個可以展現的推廣結果,在這個情況下,點擊價格為該關鍵詞的最低展現價格。
3.通常來說,質量度越高,該關鍵詞的最低展現價格就越低。
4、百度sem、百度信息流單客成本突然拉高,而且流量每天都很少,消費不高,是怎麼回事
需要對賬戶進行優化,可以從創意,匹配,拓詞,時段、網站內容等角度去優化,盡可能搶占優質流量並引導轉化。
這里需要注意的點就是,操作時需要做相關的優化操作記錄,萬一百度突然放量,到時候會讓你措手不及,成本增加。
或者你可以找專業的人進行咨詢,厚昌網路的趙陽老師,做過多年的培訓,很有經驗,我可以幫你聯系他哦,讓他給你做一次顧問
5、SEM競價工程師的具體工作是什麼
SEM競價工程師主要就是做搜索引擎營銷的工作。通過管理競價賬戶,優化關鍵詞,有效提升企業知名度及銷售額,通過搜索引擎返回的結果,來獲得更好的銷售或者推廣渠道的工作。具體工作內容有:
一、統計前一天賬戶效果報表。
這個相對於管理整個賬戶的朋友來說是必須要做的一個報表,報表包括展現量、平均點擊價格、點擊量、點擊率,整個賬戶的咨詢量,咨詢成本。
做這個報表的目的在於與前一天(之前的任何一天)的報表進行對比分析,找出存在的問題,看展現點擊各方面有沒有比較明顯的增長或降低,給自己一個比較明確的賬戶整體推廣效果。
關注賬戶(項目計劃)下線時間,每天賬戶的預算要控制好,防止提前下線帶來不必要的損失。
二、統計前一天推廣計劃報表負責不同項目可以根據自己管理的計劃進行統計。
推廣計劃報表包括以下數據:各計劃的展現量、平均點擊價格、點擊、咨詢、點擊率、咨詢成本。首先,計劃報表可以很明確的看出推廣計劃的推廣效果,每個計劃對話量有多少,計劃消費了多少錢,咨詢成本是否在自己的控制范圍內,每日報表做對比分析,消費,展現點擊、一目瞭然。
其次,可以針對新增的臨時推廣活動有一個參考分析。再次,各計劃對整個賬戶是有密切關系的,各個計劃的變化導致整個賬戶的展現點擊咨詢的增加或降低,進而推論到整體賬戶的推廣效果,從而對賬戶統計報表提供可觀性的數據。
三、統計前一天關鍵詞報表。
統計展現量多少(匹配有關),點擊有多少,帶來的咨詢又有多少,這個詞的平均每天對話成本。
四、實時監控賬戶(項目)消費前50重點關鍵詞。
重點關鍵詞排名情況的檢查根據不同行業,消費的重點關鍵詞數量可以多或少,20%的關鍵詞消費整個賬戶的80%的費用,同時這20%關鍵詞帶來80%的轉化,這就是競價推廣的28定律。時刻關注這些重點詞的展現點擊轉化情況,關鍵詞的質量度,排名的穩定性。
五、關注品牌詞的保護。
被競爭對手購買品牌詞是再正常不過的啦,所以每天抽出一小部分時間進行品牌詞的維護,一經發現競爭對手做自己的品牌詞,可以和競爭對手溝通解決或直接向客服投訴,要求有關品牌關鍵詞下線,如果對手還是不肯罷休,只能以其人之道還治其人之身。
六、根據統計工具進行無效搜索詞的否定。
導出搜索詞報告進行否詞。不同的匹配模式會帶來不同的搜索詞,尤其是廣泛匹配模式的關鍵詞,針對的是廣泛受眾群體,帶來的是比較泛的流量,點擊訪問的針對性不足。
轉化率不如精確匹配和短語匹配。所以無效的搜索詞必然會比較多,尤其是出現比較多的無效詞,我們可以否定。
七、挖掘和拓展新詞。
搜索詞報告與有效咨詢詞相結合,找出轉化好的關鍵詞,百度下拉框,百度指數、從中挖掘出一些符合搜戶習慣的詞。
這個根據實際情況不同行業具體問題具體分析,看數據量的大小,醫療行業可以1-2星期做一次拓展,其他競爭沒有那麼激烈的可以半個月或一個月做一次。
八、分時段關注賬戶的消費情況。
每個項目的推廣每天都有高峰期,實時關注賬戶的消費情況避免短時間過多消費或者不能消費。與之前同時段的數據作對比,找出消費過高(過低)的計劃對應的單元、關鍵詞,檢查匹配、排位、有沒有問題。
一個熱門炒作的關鍵詞出現可能會在短時間觸及投放的關鍵詞(或廣告創意)帶來大流量的沖擊,消費過多。
在管理賬戶過程中不小心的操作導致暫停或刪除計劃、單元及關鍵詞導致消費不出去;關鍵詞(高消費關鍵詞)排位不穩定導致消費問題。
九、分時段關注商務通數據。
關注商務通,可以掌握推廣效果,防止惡意點擊,帶目的性去關注流量走向。
十、關鍵詞質量度,創意優化。
以最低的成本帶來最高的投資回報率(ROI),關鍵詞質量度好,出價就可以相對少點,質量度很大的決定因素就是創意的最好壞,好的創意可以帶來好的質量度。
每天可以設定自己的一個目標,優化多少個計劃或單元,首先重點優化消費高的重點詞,後期一步步優化其他。(微信回復質量度,有質量度優化完全方法)。
高級競價員每天都做什麼?
十一、分析賬戶計劃關鍵詞周(月)報表。
一段時間的推廣最能表現出推廣效果,周/月報表非常有必要做,做完之後要用心去分析,為一周或一個月的時間里推廣做一個總結,找出不足,加以改正;找出優秀的策略,繼續保持。
參考資料來源:百度營銷學院——高級競價員每天都做什麼
參考資料來源:百度營銷學院——競價推廣之SEMer日常工作流程
參考資料來源:網路——sem賬號管理
6、SEM是什麼意思,SEM專員崗位職責有哪些
網站優化的,運用後台軟文之類的使搜索網站抓取自己網站,實現優化
7、做SEM優化主要分析哪幾種數據
我們得明確SEM優化的目的是什麼,通常我們進行SEM優化的最終目的都是提升ROI,為了達成這個目標,我們會從SEM各個環節來查找當前的問題,進行優化。
一、統計賬戶效果
賬戶效果報表包括展現量、點擊量、點擊率、平均點擊價格等、整個賬戶的咨詢量、咨詢成本。把這個報表與前一天、前一周的報表進行對比,看各方面有沒有明顯的增長或者減低,哪裡有需要改正的,然後再調整賬戶。
二、統計推廣計劃
推廣計劃報表中包含每個計劃中的展現量、點擊量、點擊率、平均點擊價格、咨詢、咨詢成本等,也和之前的報表相比較。計劃報表可以很明確的看出奧慧網路推廣計劃的推廣效果,可以對以後添加的推廣計劃做一個參考。
三、統計關鍵詞
統計關鍵詞展現量有多少,匹配有多少,點擊量有多少,帶來多少咨詢量、每個關鍵詞的對話成本,有了這些數據,我們就知道哪些關鍵詞比較重要,怎麼調關鍵詞。數據對於SEM競價推廣很重要,要善於統計、善於分析,競價推廣才會越做越好。
8、SEM的人群投放如何理解?
非人群設置規則里的用戶依然是按你設置的關鍵詞定向規則進行跑量的。你也可以藉助工具幫你優化管理,現在SEM和信息流九枝蘭做的都不錯。
9、網站做SEM,高消費低轉化的局面怎麼破解?
把高消費低轉化的詞降低出價,修改匹配模式,否詞