当前位置: 首页 > wzjs >正文

企业网站一定要花钱吗wordpress5.0发布

企业网站一定要花钱吗,wordpress5.0发布,交易网站开发,菜鸟教程python(1)多线程资源竞争问题: 互斥:在多线程中对临界资源的排他性访问。 解决方案:互斥锁 mutex互斥锁在进程pcb块,ret 为0说明别人在用,1说明空闲。 阻塞锁 man pthread_mutex_init man pthread_…

(1)多线程资源竞争问题:

互斥:在多线程中对临界资源的排他性访问。

解决方案:互斥锁
mutex互斥锁在进程pcb块,ret 为0说明别人在用,1说明空闲。

阻塞锁
man pthread_mutex_init
man pthread_mutex_destory
定义:pthread_mutex_t  mutex;内核对象
初始化:man pthread_mutex_init
加锁  pthread_mutex_lock
解锁 pthread_mutex_unlock
销毁pthread_mutex_destroy

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

 

#include <pthread.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

int WIN = 3;

pthread_mutex_t mutex;

void* th(void* arg)

{

while (1)

{

pthread_mutex_lock(&mutex);

if (WIN > 0)

{

WIN--;

printf("get win\n");

pthread_mutex_unlock(&mutex);

int n = rand() % 5 + 1;

sleep(n);

pthread_mutex_lock(&mutex);

WIN++;

printf("relese win\n");

pthread_mutex_unlock(&mutex);

break;

}

else

{

pthread_mutex_unlock(&mutex);

}

}

return NULL;

}

int main(int argc, char** argv)

{

pthread_t tid[10] = {0};

int i = 0;

pthread_mutex_init(&mutex,NULL);

for (i = 0; i < 10; i++)

{

pthread_create(&tid[i], NULL, th, NULL);

}

for (i = 0; i < 10; i++)

{

pthread_join(tid[i], NULL);

}

pthread_mutex_destroy(&mutex);

system("pause");

return 0;

}

为了并发要保证锁定内容尽量少,可以快速完成,只锁全局变量。没有解锁就会陷入死锁。

加锁后的代码到解锁部分属于原子操作
 

(2)同步:有一定顺序的对资源的排他性访问(二值)

互斥锁可以控制排他访问,但没有顺序。

信号量:1/0   semaphore.h  posix


定义:sem_t sem
初始化:int sem_init(,0线程用1进程用,1);,0,0
p申请sem_wait;            p申请信号量会阻塞-1
v释放sem_post          v释放信号量不阻塞+1    二值信号量
销毁sem_destroy

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

 

#include <pthread.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

#include <semaphore.h>

sem_t sem_H,sem_W;

void* th1(void* arg)

{

int i =10;

while(i--)

{

sem_wait(&sem_H); // P 操作 也即是 申请信号量 会阻塞 -1

printf("hello ");

fflush(stdout);

sem_post(&sem_W); // V 操作 释放信号量 +1

}

return NULL;

}

void* th2(void* arg)

{

int i =10;

while(i--)

{

sem_wait(&sem_W);

printf("world\n");

sem_post(&sem_H);

sleep(1);

}

return NULL;

}

int main(int argc, char **argv)

{

pthread_t tid1,tid2;

sem_init(&sem_H,0,1);

sem_init(&sem_W,0,0);

pthread_create(&tid1,NULL,th1,NULL);

pthread_create(&tid2,NULL,th2,NULL);

pthread_join(tid1,NULL);

pthread_join(tid2,NULL);

sem_destroy(&sem_H);

sem_destroy(&sem_W);

system("pause");

return 0;

}

计数信号量是互斥
 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

 

#include <pthread.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <unistd.h>

#include <semaphore.h>

sem_t sem_WIN;

void* th(void* arg)

{

sem_wait(&sem_WIN);

printf("get win\n");

int n = rand() % 5 + 1;

sleep(n);

printf("relese win\n");

sem_post(&sem_WIN);

return NULL;

}

int main(int argc, char** argv)

{

pthread_t tid[10] = {0};

int i = 0;

sem_init(&sem_WIN,0,3);

for (i = 0; i < 10; i++)

{

pthread_create(&tid[i], NULL, th, NULL);

}

for (i = 0; i < 10; i++)

{

pthread_join(tid[i], NULL);

}

sem_destroy(&sem_WIN);

system("pause");

return 0;

}

(3)死锁产生条件:
互斥条件:一个资源每次只能被一个进程使用
请求与保持条件:一个进程因请求资源而阻塞时,对以获得的资源保持不放。
不剥夺条件:进程以获得的资源,未使用完不能强行剥夺。
循环等待条件:若干进线程之间形成头尾相接的循环等待资源关系。
 

http://www.dtcms.com/wzjs/828078.html

相关文章:

  • 营销网站建设文章南宁网站建设方案报价
  • 网站建设方案撰写wordpress 论坛那
  • 设计网站大全免费下载冬季去黄山旅游攻略
  • 高端网站定制的案例Wordpress需要什么基础
  • 网站建设 租赁蓝色网站
  • 带seo服务的网站定制什么样式表一般用于大型网站
  • 网站建设营销制作设计中国城乡和住房建设部网站
  • 太原的网站建设公司怎样网页制作
  • 网站开发是什么如何利用某个软件做一个网站
  • 成都58手机微信网站建设名录没有充值入口的传奇
  • 东营市做网站的公司制作一个网页需要花钱吗
  • 免费创建论坛网站网站优化制作公司代理
  • 专业网站建设价格最优网页制作搜题软件
  • 特优项目网站建设方案手机页面制作
  • 网站备案号怎么查做网站 中介
  • 怎么用wordpress修改网站源码工作室推广网站
  • 北京网站建设 网络推广公司网站怎么申请怎么注册
  • 梅州兴宁网站建设微信公众号运营
  • 上海 外贸网站diy做网站
  • 网站建设网站腾讯 网站开发
  • 永川建网站青岛公司网站建设价格低
  • 邯郸网站建设价格找建站公司
  • 深圳网站建设售后服务制作小程序源码
  • 深圳均安网站制作广州网站建设 乐云seo
  • 网站开发十大公司做社群的网站有哪些
  • 做网站的工作记录住房和城乡建设部网站防烟排烟
  • 建设项目环评验收网站什么网站可以免费做会计初级
  • 对网站策划的看法ps培训班
  • 制作网站必做步骤网络免费推广平台
  • 网站开发中 html网站模板如何修改域名