精华内容
下载资源
问答
  • 2021-05-14 19:04:57

    《物联网工程领域应用综合实训》实验报告

    PAGE17 / NUMPAGES18

    ADDIN CNKISM.UserStyle实验八 Linux多线程实验

    报告撰写人

    专业班级

    学号

    姓名

    完成时间

    。。。

    。。。。

    。。。

    实验目的

    了解什么是多线程,熟悉LINUX的多线程机制;

    掌握利用信号处理Linux多线程的同步问题;

    掌握利用信号量处理Linux多线程的互斥问题;

    运用Linux多线程的同步机制和互斥机制实现生产者消费者的编程。

    实验内容

    “生产者-消费者”问题如下:有一个有限缓冲区和两个线程:生产者和消费者。他们分别不停地把产品放入缓冲区、从缓冲区中拿走产品。一个生产者在缓冲区满的时候必须等待,一个消费者在缓冲区空的时候也必须等待。另外,因为缓冲区是临界资源,所以生产者和消费者之间必须互斥执行。它们之间的关系如图1所示。现在要求使用共享内存来模拟有限缓冲区,并且使用信号量来解决“生产者-消费者”问题中的同步和互斥问题。

    1 生产者和消费者问题描述

    2. 问题描述:假设有五位哲学家围坐在一张圆形餐桌旁,做以下两件事情之一:吃饭,或者思考。吃东西的时候,他们就停止思考,思考的时候也停止吃东西。餐桌中间有一大碗意大利面,每两个哲学家之间有一只餐叉。因为用一只餐叉很难吃到意大利面,所以假设哲学家必须用两只餐叉吃东西。他们只能使用自己左右手边的那两只餐叉。请用Linux线程编程解决。

    2 哲学家进餐问题示意图

    实验过程与结果

    操作过程

    错误

    解决方法

    实验1

    步骤一:

    编写producer_customer.c的文件

    在不同的编译器中for循环的用法不太一样,在这里最好不要使用for(int i=0; ;)

    最好在外声明int i在for循环里直接写i=0

    步骤二:

    编译代码并且运行代码

    步骤三:

    运行完毕后,显示以下代码:

    生产者消费者先后生产数据以及取出数据,此程序中设置了两个消费者两个生产者,交替进行生产数据消费数据。

    实验2

    步骤一:

    编写philosopher.c的文件

    步骤二:

    编译代码并且运行代码

    步骤三:

    实验代码

    实验一:

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #define MAX_BUFFER_SIZE 10

    #define SHM_MODE 0600

    #define SEM_MODE 0600

    #define SEM_FULL 0

    #define SEM_EMPTY 1

    #define MUTEX 2

    /*

    #if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED)

    //union semun is defined by including

    #else

    // according to X/OPEN we have to define it ourselves

    union semun{

    int val;

    struct semid_ds *buf;

    unsigned short *array;

    };

    #endif

    union semun su;//sem union,用于初始化信号量

    */

    struct my_buffer

    {

    int head;

    int tail;

    char str[MAX_BUFFER_SIZE];

    int num; //缓冲区里字母数量

    int is_empty;

    };

    const int N_CONSUMER = 2;//消费者数量

    const int N_PRODUCER = 2;//生产者数量

    const int N_BUFFER = 10;//缓冲区容量

    const int N_WORKTIME = 10;//工作次数

    int shm_id = -1;

    int sem_id = -1;

    pid_t child;

    pid_t parent;

    //得到10以内的一个随机数

    int get_random()

    {

    int digit;

    srand((unsigned)(getpid() + time(NULL)));

    digit = rand() % 10;

    return digit;

    }

    //得到A~Z的一个随机字母

    char getRandChar()

    {

    char letter;

    srand((unsigned)(getpid() + time(NULL)));

    letter =

    更多相关内容
  • 成绩 面向对象原理与Java实践课程实验报告 实验5多线程 姓 名 _ _ _ 班 级 _ 学 号 _ 实验地点 _ 实验时间 _ 指导教师 _ _ _ 一实验目的 了解线程调度机制 理解线程同步机制 掌握线程设计方法 二实验要求 掌握线程...
  • 实验报告 20 19~20 20学年第 1学期 学 院 信息学院 班 级 计算机科学与技术18(3) 姓 名 申屠志刚 学 号 2018329621200 ...

    浙江理工大学

    Java程序设计》

     实验报告

     20 19~20 20学年第 1学期     

     

    信息学院

     

    计算机科学与技术183

     

    申屠志刚

     

    2018329621200

    任课教师

    任祝

    13 周二 345节)

       计算机科学与技术专业

    20 19 11

    《Java程序设计》实 验 报 告(四)

    实验名称: Java多线程机制

    实验地点10-306

    所使用的工具软件及环境:

    JDK1.7或1.8与Eclipse

     

     

    一、实验目的:

    熟悉Java的JFrame,多线程机制。

    二、实验内容:

    内容:设计和编写一个带界面时钟程序,应用多线程实现时钟的走动。

    要求:本实验旨在通过实验,培养学生将JAVA 线程的相关知识点(包括JFrame,多线程)有机结合并加以综合应用。需:

    (1)建议是简单的数字时钟即可,例如。表盘式时钟相对复杂,不做强制要求。

    (2)贴出代码

     

    (3)贴出运行结果

     

    三、要求:

    (1)说明原理

    JAVA Swing

    多线程

    (2)源代码

    import java.awt.*;
    
    import java.awt.event.*;
    
    import java.text.SimpleDateFormat;
    
    import java.util.Date;
    
    
    
    import javax.swing.*;
    
    
    
    public class ClockFrame extends JFrame{
    
       
    
        JLabel lbClock=null;//创建一个标签
    
        public ClockFrame(){
    
            lbClock=new JLabel(getDate());
    
            //实例化lbClock标签,其title为动态调用getDate方法
    
            lbClock.setFont(new Font("黑体",Font.BOLD,50));
    
            lbClock.setForeground(Color.red);
    
            //设置标签字体以及标签中字的颜色
    
            this.add(lbClock);
    
            //将标签添加到窗体中
    
            this.addMouseListener(new MouseAdapter(){
    
                public void mouseClicked(MouseEvent e){
    
                    if(e.getClickCount()==2){
    
                       System.exit(0);
    
                    }
    
                }
    
            });
    
            //注册监听器,监听鼠标事件,mouseAdapter中的方法都已经封装,直接实现功能即可
    
            this.setUndecorated(true);
    
            //窗体无边框
    
            this.pack();
    
            //窗口大小自适应
    
            this.setLocationRelativeTo(null);
    
            //窗体居中
    
            this.setVisible(true);
    
            //窗体可见;
    
           
    
            //创建并启动线程,使时间不断地显示在屏幕上
    
            new Thread(new Runnable(){
    
                //在创建Thread对象时直接使用一个匿名的Run那边了对象实现线程中的方法。
    
                public void run() {
    
                    while(true){
    
                       //无限循环休眠1000ms
    
                       try{
    
                           Thread.sleep(1000);
    
                       }catch(InterruptedException e){
    
                           //扑捉发生在线程中的异常,当一个正在执行的线程被中断时就会出现这个异常,添加catch后当程序被双击停止时不会出现错误
    
                           e.printStackTrace();
    
                       }
    
                       lbClock.setText(getDate());
    
                      
    
                    }
    
                }
    
               
    
            }).start();//启动Thread方法,这个Thread方法也是匿名的。
    
        }
    
    
    
        private String getDate() {
    
            //这个方法属于java中常见的获取当前时间并格式化输出的例子
    
            SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    
            //确定时间的格式
    
            return df.format(new Date());
    
            //new Date取当前系统时间,使用创建的格式实例格式化返回去到的时间。
    
        }
    
    
    
        public static void main(String[] args) {
    
            // TODO Auto-generated method stub
    
            new ClockFrame();
    
    
    
        }
    
    
    
    }

     

    (3)结果截图

     

    四、实验收获与体会:

    学会JAVA Swing编程

    使用WindowsBuilder工具

    掌握JAVA 多线程编程技术

     

       

     

     

     

    展开全文
  • Android多线程机制

    千次阅读 2017-09-14 17:55:38
    问题1)为何需要多线程? 在android中,在主线程中如果耗时太长会出现ANR(android not Responding),也就是看起来很卡; ...implements Runnable 或 extends Thread3)多线程机制的核心是啥?

    问题

    1)为何需要多线程?
    在android中,在主线程中如果耗时太长会出现ANR(android not
    Responding),也就是看起来很卡;
    一些下载图片,下载数据等耗时操作需要在其他线程执行。
    一句话:避免应用太卡,需要使用多线程。


    2)多线程如何实现?
    多线程实现方式两种方式:
    implements Runnable 或 extends Thread


    3)多线程机制的核心是啥?
    也可以理解为:线程之间的消息传递
    一句话:handler机制
    3.1 创建一个Handler时一定要关联一个Looper实例,默认构造方法Handler(),它是关联当前Thread的Looper。
    我们在UI Thread中创建一个Handler,那么此时就关联了UI Thread的Looper!

    public Handler() {
    
        mLooper = Looper.myLooper();
    }
    //当前线程的Looper,在Activity创建时,UI线程已经创建了Looper对象
    
    //在Handler中机制中Looper是最为核心的,它一直处于循环读MessageQueue,有
    
    //要处理的Message就将Message发送给当前的Handler实例来处理

    3.2 在创建一个Handler的时候也可以指定Looper,此时的Looper对象,可以是当前线程的也可以是其它线程的!
    Handler只是处理它所关联的Looper中的MessageQueue中的Message,至于它哪个线程的Looper,Handler并不是很关心!

    我们可以在UI线程中创建一个Handler同时传入Worker的Looper???????

    3.3 可Handler到底干了啥呢?简要说明如下:

    Activity所在的UI线程在创建的时候,就关联了Looper和MessageQueue,那么我们又在UI线程里创建了自己的Handler,那么Handler是属于UI线程的,从而它是可以和UI线程交互的!
    UI线程的Looper一直在进行Loop操作MessageQueue读取符合要求的Message给属于它的target即Handler来处理!所 以啊,我们只要在Worker线程中将最新的数据放到Handler所关联的Looper的MessageQueue中,然而Looper一直在loop 操作,一旦有符合要求的Message,就第一时间将Message交给该Message的target即Handler来处理!所以啊,我们在创建 Message的时候就应该指定它的target即Handler

    3.4 消息发送有哪几种方法?

    但我们也可以,new Message() -- > mHandler.sendMessage(msg) ;这是特例!
    
    如果我们通过obtainMessage()方法获取Message对象,此时Handler就会自动设置Message的target。可以看源码!

    简单一点说就是:

    UI线程或Worker线程提供MessageQueue,Handler向其中填Message,Looper从其中读Message,然后交由 Message自己的target即Handler来处理!!最终被从属于UI线程的Handler的handlMessag(Message msg)方法被调用!!

    这就是Android多线程异步处理最为核心的地方!!

    3.5 注意点:
    (1)在UI线程中创建Handler[一般继承HandleMessage(Message msg)]
    (2)Looper可以属于UI线程或Worker线程
    (3)从属于Looper的MessgeQueue,Looper一直在loop()操作,在loop()中执行msg.target.dispatchMessage(msg);调用Handler的handleMessage(Message msg)

    在创建一个Looper时,就创建了从属于该Looper的MessageQueue
    private Looper() {
    
    mQueue = new MessageQueue();
    
    mRun = true;
    
    mThread = Thread.currentThread();
    
    }

    (4)在 Worker线程中获取Message,然后通过Handler传入MessageQueue
    (5)handler处理消息。


    4)到底有多少种实现方式?

    4.1 在异步线程操作UI控件

    利用handler

    handler.sendMessage(message)-----------handleMessage方法回调

    4.2 控件自己本身操作

    textview.post(Runnable action)
    textview.postDelay(Runnable action , long miliseconds)
    

    4.3 activity的调用方法
    runOnUiThread(Runnable action)

    public final void runOnUiThread(Runnable action) {
    
    if (Thread.currentThread() != mUiThread) {
    
    //如果当前线程不是UI线程
    
    mHandler.post(action);
    
    } else {
    
    action.run();
    
    }
    
    }
    
    其中:
    
    mUiThread = Thread.currentThread() ;
    
    mHandler = new Handler()

    4.4 AsyncTask(在UI线程中、只能实例化一次的)

    onPreExecute() --在UI线程中执行,作一些初始化操作
    doInBackground(Params... params) --在Worker线程中执行,进行耗时的后台处理,在该方法中可以调用publishProgress(Progress progress) 进行进度处理
    onProgressUpdate(Progress progress) --在UI线程中执行,进行进度实时处理
    onPostExecute(Result result) --在UI线程中执行, 在doInBackground(Params ... params)返回后调用
    onCancelled() --在UI线程中执行,在AsyncTask实例调用cancle(true)方法后执行,作一些清理操作

    注意点

    
    AsyncTask必须在UI线程中创建,
    
    asyncTask.execute(Params... params) ;在UI线程中执行,且只能执行一次
    
    要想再次调用execute(Params... params),必须重新创建AsyncTask对象

    遗留问题

    1. handler从消息队列轮询处理消息,当消息处理完了会怎样?
    2. AsyncTask优缺点有哪些?
      优点是解决了多线程处理问题
      缺点是每处理一个任务需要一个新的实例来执行
    3. 当同一时间有很多耗时操作时,需要new thread很多实例,任务执行完成后,会被虚拟机垃圾回收gc,降低程序性能。
      原理:当频繁创建销毁某个类型的对象实例时,会产生很多临时对象,当失去引用的临时对象较多时,就会gc。
      如何自定义线程池来处理这一个问题?
    4. 我们可以在UI线程中创建一个Handler同时传入Worker的Looper,那么handler处理消息是来自UI线程还是worker线程,还是两个都处理?
    5. 用一张图来阐述handler原理?
    展开全文
  • Java并发编程技术官笔记 由于篇幅原因,我只能在文章...对Java里的线程-点点认识 线程间的共享和协作 面试题 CPU核心数和线程数的关系 澄清并行和并发 2,线程的并发工具类 Fork-Join CountDownLatch CyclicB

    Java并发编程技术官笔记

    由于篇幅原因,我只能在文章中展示部分的章节内容和核心截图,如果你需要完整的pdf版本,可以在文末免费领取

    首先给大家分享学习的思维导图,学习是需要逻辑完整的,这样才可以更高效的学习:

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    下面是笔记的总目录:

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    1,线程基础、线程之间的共享和协作

    • 基础概念
    • 认识Java里的线程
    • 对Java里的线程再多-点点认识
    • 线程间的共享和协作
    • 面试题

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    CPU核心数和线程数的关系

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    澄清并行和并发

    2,线程的并发工具类

    • Fork-Join
    • CountDownLatch
    • CyclicBarrier
    • CountDownLatch和CylicBarrier辨析
    • Semaphore
    • Exchange
    • Callable. Future和FutureTask

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    3,原子操作CAS

    • 什么是原子操作?如何实现原子操作?
    • CAS实现原子操作的三大问题
    • Jdk中相关原子操作类的使用

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    4,显式锁和AQS

    • 显式锁
    • 了解LockSupport
    • CLH队列锁
    • AbstractQueuedSynchronizer
    • 回头看Lock的实现

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    5,并发容器

    • 为什么要使用ConcurrentHashMap
    • ConcurrentHashMap
    • ConcurrentSkipList系列
    • ConcurrentinkedQueue
    • 写时复制容器
    • 阻塞队列BlockingQueue

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    6,线程池

    • 为什么要用线程池?
    • ThreadPoolExecutor的类关系
    • 线程池的创建各个参数含义
    • 扩展线程池
    • 线程池的工作机制
    • 提交任务.
    • 关闭线程池
    • 合理地配置线程池
    • 预定义线程池
    • CompletionService

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    7,并发安全

    • 什么是线程安全性
    • 死锁
    • 其他安全问题
    • 并发下的性能
    • 线程安全的单例模式

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    8,实战项目

    • 并发任务执行框架
    • 性能优化实战

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    9,JMM和底层实现原理

    • JMM基础计算机原理
    • 物理内存模型带来的问题
    • 伪共享
    • Java内存模型( JMM)
    • Java内存模型带来的问题
    • happens- before
    • volatile详解
    • fnal的内存语义
    • 锁的内存语义
    • synchronized的实现原理
    • 了解各种锁

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    10,Java8新增的并发,扩充知识点- Disruptor

    • 原子操作CAS
    • StampLock
    • CompleteableFuture

    大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

    最后如何让自己一步步成为技术专家

    说句实话,如果一个打工人不想提升自己,那便没有工作的意义,毕竟大家也没有到养老的年龄。

    当你的技术在一步步贴近阿里p7水平的时候,毫无疑问你的薪资肯定会涨,同时你能学到更多更深的技术,交结到更厉害的大牛。

    推荐一份Java架构之路必备的学习笔记,内容相当全面!!!

    成年人的世界没有容易二字,前段时间刷抖音看到一个程序员连着加班两星期到半夜2点的视频。在这个行业若想要拿高薪除了提高硬实力别无他法。

    你知道吗?现在有的应届生实习薪资都已经赶超开发5年的程序员了,实习薪资26K,30K,你没有紧迫感吗?做了这么多年还不如一个应届生,真的非常尴尬!

    进了这个行业就不要把没时间学习当借口,这个行业就是要不断学习,不然就只能被裁员。所以,抓紧时间投资自己,多学点技术,眼前困难,往后轻松!

    要领取这些精心整理出来的资料的话,请记得

    实习薪资都已经赶超开发5年的程序员了,实习薪资26K,30K,你没有紧迫感吗?做了这么多年还不如一个应届生,真的非常尴尬!

    进了这个行业就不要把没时间学习当借口,这个行业就是要不断学习,不然就只能被裁员。所以,抓紧时间投资自己,多学点技术,眼前困难,往后轻松!

    要领取这些精心整理出来的资料的话,请记得

    ————【关注】+【转发】+【点赞】支持我!创作不易!点击这里前往我的腾讯文档免费下载

    展开全文
  • Java并发编程技术官笔记 由于篇幅原因,我只能在文章...对Java里的线程-点点认识 线程间的共享和协作 面试题 CPU核心数和线程数的关系 澄清并行和并发 2,线程的并发工具类 Fork-Join CountDownLatch CyclicB
  • Java实验报告(六)|多线程

    千次阅读 2020-11-22 17:03:32
    (一)采用2种方法实现:创建2个线程,第一个线程计算1+2+…+10000的值,第二个线程计算10!的值。在主类的main方法中输出2个线程的计算结果。 1)源程序(采用继承Thread类的方法): public class ThreadTest01 { ...
  • 3.掌握多线程的同步机制实验内容 根据要求,编写应用程序。要求如下: 1.模拟银行账户,两个以上的用户同时进行存、取操作。 2.银行有一个账户,有两个用户分别向同一个账户存3000元,每次存1000,存三次。 3....
  • 操作系统上机实验报告 实验名称 进程和线程 实验目的 理解uix/Linux下进程和线程的创建并发执行过程 实验内容 1进程的创建 2多线程应用 实验步骤及分析 进程的创建 下面这个C程序展示了UNIX系统中父进程创建子进程及...
  • Nachos 4.1 lab1 线程机制实验报告 目录 内容一:总体概述 3 内容二:任务完成情况 3 任务完成列表(Y/N) 3 具体Exercise的完成情况 3 内容三:遇到的困难以及解决方法 4 内容四:收获及感想 5 内容五:对课程的...
  • 实验安排:利用Java语言中的多线程模拟生成者、消费者问题,给出测试数据,记录程序运行结果,完成实验报告。 实验要求: (1)设置存放产品的缓冲区的个数为6个。 (2)信号量机制实现生产者和消费者对缓冲区的...
  • 操作系统实验报告-基于线程的编程技术一、实验目的和要求二、实验方法与步骤(需求分析、算法设计思路、流程图等)三、实验原始纪录(源程序、数据结构等)四、实验结果及分析(计算过程与结果、数据曲线、图表等)...
  • 在C语言中使用多线程

    2021-05-20 12:07:20
    1、C语言多线程需要使用头文件pthread.h2、使用pthread_t来创建线程id,使用pthread_create创建线程。线程创建完会进行执行。、 pthread_create函数有四个参数,第一个参数是指向线程标识符的指针,也就是指向线程id...
  • Java程序设计实验七 ava多线程机制 实验内容(实验方案、实验步骤、设计思路等) 1. 实验方案:在IDEA中编写代码,运行检验,看结果是否符合预期。 2. 实验步骤:在书上找到相关技术算法的描述,然后建立Java项目、...
  • 《面向对象与多线程综合实验报告 1 实验目的 运用Java语言,以迭代方式逐步编程实现一个小型数据挖掘系统。由此了解软件开发的一般过程,深入理解面向对象语言的基本概念和基本原理,理解和掌握继承与多态、异常...
  • 多线程机制该窗口模拟Windows的计算器功能,添加一个文本行和4个按钮,单击【1】、【2】、【+】按钮时,将按钮的标签添加到文本行中;单击【C】按钮时,清空文本行中的内容;单击窗口的关闭按钮,将关闭该窗口。程序...
  • (1)设置存放产品的缓冲区的个数为6个。 (2)信号量机制实现生产者和消费者对缓冲区的互斥访问。 (3)生产者生产产品时,要输出当前缓冲区冲产品的个数和...(5)用多线程的并发实现生产者进程和消费者进程的同步。
  • 操作系统上机实验报告实验名称:进程和线程实验目的:理解unix/Linux下进程和线程的创建、并发执行过程。实验内容:1.进程的创建2.多线程应用实验步骤及分析:一、进程的创建下面这个C程序展示了UNIX系统中父进程...
  • 哲学家进餐实验报告

    2018-11-18 14:42:42
    哲学家进餐问题,非线程完成,c++核心代码,武汉理工大学实验报告
  • java多线程编程体会

    2021-03-16 17:34:33
    在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持。本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观。读完本文以后,用户应该能够编写简单的多线程程序...
  • 2、使用Java 的多线程机制,深入理解Java多线程技术的应用。  3、使用GUI,对JFrame的深入学习。 4、使用网络编程,掌握基于TCP协议的Socket编程,了解Socket编程的协议约定,掌握简单应用协议的开发。  5、使用C...
  • JAVA多线程学习心得(一)

    千次阅读 2021-03-14 02:03:03
    最近在github上写了几个关于多线程的练习, 项目地址:https://github.com/jndf/multithreading-pratice需要的朋友可以看看,代码如有错误,请多提出指正意见。下面说一下最近的一些心得。Thread和Runnable两种实现...
  • JAVA实验报告

    2018-07-19 19:40:08
    九次JAVA实验报告,内容涉及记事本读取保存、生产者与消费者多线程机制、计算器、通信机制等,包括代码供参考。
  • 操作系统初学,关于信号量同步的实验报告,用三种方法避免哲学家进餐问题死锁,a:and信号量,b:控制进餐人数,c设置条件
  • 贪吃蛇java实验报告贪吃蛇java实验报告篇一:JAVA贪吃蛇课程设计报告 《Java应用开发》 课程设计报告 题 目:指导老师:姓 名:专 业:班 级:日 期: JAVA小游戏 - 贪吃蛇 目录 一、系统总体设计 .................
  • 多核程序设计实验报告 实验一 Windows多线程编程 一、实验目的与要求 了解windows多线程编程机制 掌握线程同步的方法 二、实验环境和软件 Windows XP VC 6.0 三、实验内容 1.创建线程: HANDLE CreateThread ( ...
  • 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 ...那么这个扩建规模是不是要小很,这种方式就是线程的方式 提示:以下是本篇文章正文内容,下面案例可...
  • //**************************************************** // File: HB_Server.cpp // Language: Visual C++ // IDE: VS2010 // Project: Win32 Console+预编译头 // Author: Dearggae // Date: 2012.10.31 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,993
精华内容 3,997
关键字:

多线程机制实验报告