当前位置:  技术问答>linux和unix

求高手,google 面试题,多线程,mutex

    来源: 互联网  发布时间:2016-05-06

    本文导语:  有四个线程1,2,3,4,线程1的功能就是输出1,线程2的功能就是输出2,以此类推......... 现在有四个文件.ABCD.初始都为空. 现要让四个文件呈如下格式: A:  1 2 3 4 1 2.... B:  2 3 4 1 2 3.... C:  3 4 1 2 3 4.... D:  4 1 2 3...

有四个线程1,2,3,4,线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........
现在有四个文件.ABCD.初始都为空.
现要让四个文件呈如下格式:
A:  1 2 3 4 1 2....
B:  2 3 4 1 2 3....
C:  3 4 1 2 3 4....
D:  4 1 2 3 4 1....

设计程序.

求在linux  多线程同步 下的解法

|
全局变量:计数器i,和四个文件fd数组
单独线程定时增加i,比如每1秒加1,然后用condition通知1,2,3,4号线程;
1,2,3,4号线程根据当前的得到通知后,对计算(i % 4) + 自己的编号,然后再对应文件fd里写入自己的编号。

|
两种写法,供参考。
第一种:
A:  1 
B:  
C:  
D:  
-->
A:  1 2
B:  2 
C:  
D:  
-->
A:  1 2 3
B:  2 3 
C:  3 
D:  
-->
A:  1 2 3 4 
B:  2 3 4 
C:  3 4 
D:  4 

第二种:
A:  1
B:  2
C:  3
D:  4
-->
A:  1 2 
B:  2 3 
C:  3 4 
D:  4 1 
-->
A:  1 2 3 
B:  2 3 4 
C:  3 4 1 
D:  4 1 2 
-->
A:  1 2 3 4 
B:  2 3 4 1 
C:  3 4 1 2 
D:  4 1 2 3 

都能实现,主要问题是,要通过 多线程同步来做。
具体又分成1个线程锁,以及多个线程锁。
多个线程锁的情况,需要单独的flag来记录初始状态,以保证执行顺序,避免死锁发生。

|
4个线程操作同一个变量,用互斥锁,1线程直接求余,然后++,2,3,4线程只在变量基础上加1-3再求余。
4个线程的运行顺序问题可以考虑线程的优先级别

    
 
 

您可能感兴趣的文章:

  • 一个线程问题,很困惑,高手帮个忙
  • 网络通讯和多线程问题 请高手相助!献上100分
  • 我只有这么多分了,请多线程高手帮一下!!!!!!!
  • Linux 多线程出现段错误 高手请进啊!
  • 请教高手,线程问题,怎样暂停或杀掉多线程?
  • 高手请进:linux 多线程占用内存问题
  • Linux线程阻塞问题 高手请进
  • 关于线程的问题,还请各位高手们能帮着看看
  • 入门,请教线程编程的问题,请各路高手帮帮忙
  • 复杂的线程同步问题,请教高手
  • 高手请看过来,我有些问题,我是新手.关于线程的!
  • 有没有使用过Linux下线程池技术的高手,请为我指点迷津!!!
  • 请linux下多线程编程的高手进来下
  • 急需关于linux多线程的代码工程实例-高手请进啊
  • 请问关于socket客户端因事件启动新线程的问题.高手请进
  • 请高手指点,多线程程序,如何调试找出 SIGSGEV 发生的位置?
  • 问个管理线程的问题-高手赐教
  • 请问高手LInux 下的进程、线程的切换具体是如何实现的?
  • Liunx多进程,多线程编程高手进来
  • 高手救命,linux下C++,多线程问题
  • 面试题:高手请进!
  • 我今天去一公司面试,他们出了这样一道题,我不会做,请高手指教。
  • 月薪6k的面试题:写makefile 高手近来
  • 网络面试题,linux + c +socket,搞的头都大了,请高手帮忙!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高手,高手,高高手请进!
  • 有熟悉EXIM的高手高手么??
  • to 高手:学java应该怎样一步步学习,从菜鸟到高手.
  • 高分请高手,高手定能解决
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • 难道高手区里的人就是高手?
  • 在dos下用bc31挑战高手******开发mssql程序,连接时报link err:undefined symbol GETNOTE in module DBEXTERN?(挑战高手)
  • 真正的linux高手,请看过来,看你符合高手标准不?
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50)
  • 关于我对linux高手用yum,非高手用源码的理由
  • 高手救命,很急——ORACLE817安装在UNIXWARE711上,手工启动数据库后在netasst中连接错误,高手帮我看看?
  • 请教高手lvs的奇怪问题,我挺着急,希望高手别潜水,就就我,先谢谢了
  • 各个高手看看这个问题!本人第一次学习java所以要各位高手的帮助。。
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 我是新手,高手,高手,快来救我
  • EJB问题,请教高手(非高手莫进)
  • 请各位JAVA高手,网业高手看过来,我把能给的分都送出!!!只能给37分,哎!!
  • eWEEK沙龙征集高手座谈


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3