撤銷C語言
快捷鍵,指的是一個軟體的快捷鍵,例如windows的快捷鍵ctrl+c是復制,ctrl+v是粘貼
一個語言怎麼會有快捷鍵呢?你問的快捷鍵,應該是你用的c編譯器的ide軟體的快捷鍵吧,這個應該搜相應的軟體說明文檔啊
⑵ 怎麼用c語言編程 實現創建原語、撤銷原語、阻塞原語和喚醒原語
下,應該差不多
一、如何建立線程
用到的頭文件
(a)pthread.h
(b)semaphore.h
(c) stdio.h
(d)string.h
定義線程標識
pthread_t
創建線程
pthread_create
對應了一個函數作為線程的程序段
注意的問題
要保證進程不結束(在創建線程後加死循環)
在線程中加入While(1)語句,也就是死循環,保證進程不結束。
二、控制線程並發的函數
sem_t:信號量的類型
sem_init:初始化信號量
sem_wait:相當於P操作
sem_post:相當於V操作
三、實現原形系統
父親、母親、兒子和女兒的題目:
桌上有一隻盤子,每次只能放入一隻水果。爸爸專放蘋果,媽媽專放橘子,一個兒子專等吃盤子中的橘子,一個女兒專等吃盤子中的蘋果。分別用P,V操作和管程實現
每個對應一個線程
pthread_t father; father進程
pthread_t mother; mother進程
pthread_t son; son進程
pthread_t daughter; daughter進程
盤子可以用一個變數表示
sem_t empty;
各線程不是只做一次,可以是無限或有限次循環
用While(1)控制各線程無限次循環
輸出每次是那個線程執行的信息
printf("%s\n",(char *)arg);通過參數arg輸出對應線程執行信息
編譯方法
gcc hex.c -lpthread
生成默認的可執行文件a.out
輸入./a.out命令運行
查看結果:程序連續運行顯示出
father input an apple.
daughter get an apple.
mother input an orange.
son get an orange.
mother input an orange.
son get an orange.
………………..
四、程序源代碼
#include <stdio.h>
#include<string.h>
#include <semaphore.h>
#include <pthread.h>
sem_t empty; //定義信號量
sem_t applefull;
sem_t orangefull;
void *procf(void *arg) //father線程
{
while(1){
sem_wait(&empty); //P操作
printf("%s\n",(char *)arg);
sem_post(&applefull); //V操作
sleep(7);
}
}
void *procm(void *arg) //mother線程
{
while(1){
sem_wait(&empty);
printf("%s\n",(char *)arg);
sem_post(&orangefull);
sleep(3);
}
}
void *procs(void *arg) //son線程
{
while(1){
sem_wait(&orangefull);
printf("%s\n",(char *)arg);
sem_post(&empty);
sleep(2);
}
}
void *procd(void *arg) //daughter線程
{
while(1){
sem_wait(&applefull);
printf("%s\n",(char *)arg);
sem_post(&empty);
sleep(5);
}
}
main()
{
pthread_t father; //定義線程
pthread_t mother;
pthread_t son;
pthread_t daughter;
sem_init(&empty, 0, 1); //信號量初始化
sem_init(&applefull, 0, 0);
sem_init(&orangefull, 0, 0);
pthread_create(&father,NULL,procf,"father input an apple."); //創建線程
pthread_create(&mother,NULL,procm,"mother input an orange.");
pthread_create(&daughter,NULL,procd,"daughter get an apple.");
pthread_create(&son,NULL,procs,"son get an orange.");
while(1){} //循環等待
}
另外,站長團上有產品團購,便宜有保證
⑶ c語言編寫進程的創建與撤銷
struct pb
{int n;
int k;
int cha;};
typedef struct pb PCB;
PCB a[10];void creat()
{static int pi=1;
int k,l=0,m;
printf("plase input n0:");
scanf("%d",&m);
for(k=1;k<=10;k++)
if (a[k].n==m)
l=1;
if (l==1)
{printf("error!\n");
creat(); }
else
{a[pi].n=m;
printf("\n");
printf("plase input k0:");
scanf("%d",&a[pi].k);
printf("\n");
a[pi++].cha=4;}}void destory()
{int i,num,k=0;
printf(" plase input destory number:");
scanf("%d",&num);
for(i=1;i<=10;i++)
if(a[i].n==num) k=i;
if(k!=0)
{a[k].n=0;a[k].k=0;a[k].cha=0;}
else
printf("No have this destory number!\n");}void wakeup()
{int i,k,m,l;
printf("請輸入n0:");
scanf("%d",&m);
for(k=1;k<=10;k++)
if (a[k].n==m)
l=k;
a[l].cha=1; /*喚醒->靜止就緒*/}void active()
{int i,k,m,l;
printf("請輸入n0:");
scanf("%d",&m);
for(k=1;k<=10;k++)
if (a[k].n==m)
l=k;
a[l].cha=3; /*激活->活動就緒*/}void dse()
{int i,k,m,l;
printf("請輸入n0:");
scanf("%d",&m);
for(k=1;k<=10;k++)
if (a[k].n==m)
l=k;
a[l].cha=4; /*阻塞->活動阻塞*/}void swpend()
{int i,k,m,l;
printf("請輸入n0:");
scanf("%d",&m);
for(k=1;k<=10;k++)
if (a[k].n==m)
l=k;
a[l].cha=2; /* 掛起->靜止阻塞 */}void look()
{int i;
printf("\t\t�pcb n0 k0 cha\n");
for (i=1;i<=10;i++)
printf("\t\t%d\t%d\t%d\t%d\n",i,a[i].n,a[i].k,a[i].cha);
printf("\t1--靜止就緒 2--靜止阻塞 3--活動就緒 4--活動阻塞 5--運行\n");}void zt() /* 改變狀態*/
{int i,k,m,l;
printf("請輸入n0:");
scanf("%d",&m);
for(k=1;k<=10;k++)
if (a[k].n==m)
l=k;
printf("請輸入當前狀態:");
scanf("%d",&a[l].cha);
look();}void yxs() /*改變優先數*/
{int i,k,m,l;
printf("請輸入n0:");
scanf("%d",&m);
for(k=1;k<=10;k++)
if (a[k].n==m)
l=k;
printf("請輸入優先數:");
scanf("%d",&a[l].k);
look();}main()
{int d;
clrscr();
do
{
printf("\t\t*************** CHOICE *****************\n");
printf("\t\t* 1--------------進程創建 *\n");
printf("\t\t* 2--------------進程撤消 *\n");
printf("\t\t* 3--------------阻塞 *\n");
printf("\t\t* 4--------------喚醒 *\n");
printf("\t\t* 5--------------掛起 *\n");
printf("\t\t* 6--------------激活 *\n");
printf("\t\t* 7--------------查看狀態 *\n");
printf("\t\t* 8--------------改變狀態 *\n");
printf("\t\t* 9--------------改變優先數 *\n");
printf("\t\t* 0--------------退出 *\n");
printf("\t\t****************************************\n");
printf("\t\t�請選擇(0-9):");
scanf("%d",&d);
printf("\n");
switch(d)
{
case 1: creat();break;
case 2: destory();break;
case 3: dse();break;
case 4: wakeup();break;
case 5: swpend();break;
case 6: active();break;
case 7:look();break;
case 8:zt();break;
case 9:yxs();break;
case 0: exit(0);
}
}
while(d!=0);
}
⑷ C語言編程有哪些快捷鍵
C語言編程一些快捷鍵如下:
CTRL + SHIFT + B生成解決方案
CTRL + F7生成編譯
CTRL + O打開文件
CTRL + SHIFT + O打開項目
CTRL + SHIFT + C顯示類視圖窗口
F4顯示屬性窗口
SHIFT + F4顯示項目屬性窗口
(4)撤銷C語言擴展閱讀:
在編程領域中,C語言的運用非常之多,它兼顧了高級語言和匯編語言的優點,相較於其它編程語言具有較大優勢。計算機系統設計以及應用程序編寫是C語言應用的兩大領域。
C語言其他的快捷方式:
Ctrl+shift+Enter在插入點之下插入一個空行
Ctrl+Delete刪除插入點右側的單詞
Ctrl+shift+(左/右方向鍵)查找上/下一個文本匹配項
Ctrl+end將插入點移動到文檔結尾的最後一行
Ctrl+home將插入點移動到文檔首行
Ctrl+Tab逐個窗口地循環通過MDI子窗口
Ctrl+B顯示「斷點」對話框,可添加和修改斷點
Ctrl+Z撤銷
Ctrl+Y反撤銷
Ctrl+W關閉程序