Multithreaded Programming Guide.ppt [兼容模式]
|
|
- 狱侥 鱼
- 7 years ago
- Views:
Transcription
1 多线程编程 HUST Ke Shi
2 Linux 系统下的多线程遵循 POSIX 标准线程接口 pthread 编写 Linux 下的多线程程序, 需要使用头文 件 pthread.h, 连接时需要使用库 libpthread.a 源文件 链接动态库 生成对象文件名 编译命令 :gcc **.c lpthread -o ** 1.2
3 一 POSIX 中常用函数 ( 一 ) 创建新线程 pthread_creat int pthread_create( pthread_t* thread, pthread_attr* attr, void *(*func)(void*), void* arg // 返回指向线程标识符的指针 // 设置线程属性 // 新线程将启动的函数的地址 // 传递给新线程启动函数的参数 ); 函数执行成功返回 0, 失败返回错误码 执行成功后, 新线程将从设定的函数处开始执行, 原线程则继续执行 1.3
4 ( 二 ) 终止线程 : void pthread_exit(void* ret) 终止调用此函数的线程, 并返回一个指向某对象的指针 (ret) 注意, 不能返回指向局部变量的指针 ( 三 ) 合并线程 :pthread_join int pthread_join(pthread_t* thread, void **ret); 第一个参数为被等待的线程标识符, 第二个参数为一个用户定义的指针, 它可以用来存储被等待线程的返回值 这个函数是一个线程阻塞的函数, 调用它的函数将一直等待到被等待的线程结束为止, 当函数返回时, 被等待线程的资源被收回 1.4
5 例程 : #include <stdio.h> #include <pthread.h> #define MAX 5 void thread_child1(void) int i; for(i=0;i<max;i++) printf("thread_child1:%d\n",i); sleep(1); void thread_child2(void) int i; for(i=0;i<max;i++) printf( Thread_Child2:%d\n,i); sleep(1); 1.5 子线程每打印一条自己的信息后然后睡眠一秒!
6 int main(void) pthread_t child1, child2; int i; int ret1, ret2; 创建线程 ret1=pthread_create(&child1,null,(void*)thread_child1,null); ret2=pthread_create(&child1,null,(void*)thread_child1,null); if(ret1!=0 ret2!=0) printf("create pthread_child faulure\n"); exit(1); pthread_join(child1,null); pthread_join(child2,null); return 0; 等待子线程完成 1.6
7 运行结果 从运行结果可以看出, 两个子线程是并发执行的 1.7
8 二 线程的控制方式 ( 一 ) 互斥锁 1 声明互斥锁变量 :pthread_mutext_t mutex; pthread_mutex_t 为不公开的数据类型, 其中包含一个系统分配的属性对象 2 互斥锁初始化: pthread_mutex_init( pthread_mutex_t *mymutex, const pthread_mutexattr_t *attr); 第一个参数是要初始化的互斥锁的指针 ; 第二个参数是一个可选的 pthread_mutexattr_t 指针, 用来设置属性 1.8
9 3 锁定互斥锁 :pthread_mutex_lock (&mutex); pthread_mutex_lock 声明开始用互斥锁上锁, 此后的代码直至调用 pthread_mutex_unlock 为止, 均被上锁, 即同一时间只能被一个线程调用执行 4 打开互斥锁 :pthread_mutex_unlock(&mutex); 下面我们利用互斥锁实现两线程的互斥问题 1.9
10 假设某站有两个卖票窗口售票, 下面的程序将模拟该系统 #include<stdio.h> #include<pthread.h> #include<semaphore.h> #include<stdlib.h> #include<unistd.h> int alltickets= 10; // 假设总共还剩余十张票 pthread_mutex_t mutex; // 声明互斥锁 void window1() while(alltickets>=1) pthread_mutex_lock(&mutex); // 加锁 if(alltickets>=1) printf("i am window1:%d\n",alltickets); alltickets--; 思考 : 为什么卖票前还要判断当前的票数? 否则可能会发生什么情况? pthread_mutex_unlock(&mutex); // 对共享资源的访问完后解锁 sleep(1); 1.10
11 void window2() while(alltickets>=1) pthread_mutex_lock(&mutex); if(alltickets>=1) printf("i am window2:%d\n",alltickets); alltickets--; pthread_mutex_unlock(&mutex); sleep(2); void main(void) pthread_t sell1,sell2; pthread_mutex_init (&mutex,null); pthread_create(&sell1, NULL, (void *)&window1, NULL); pthread_create(&sell2, NULL, (void *)&window2, NULL); pthread_join(sell1,null); pthread_join(sell2,null); 1.11
12 运行结果 从运行结果可以看出 : 两个线程实现了互斥, 并完成了售票任务 1.12
13 ( 二 ) 信号量 信号量本质上是一个非负的整数计数器, 它被用来控制对公共资源的访问 当公共资源增加时, 调用函数 sem_post( ) 增加信号量 只有当信号量值大于 0 时, 才能使用公共资源, 使用后, 调用函数 sem_wait( ) 减少信号量 和信号量有关的一些函数都在头文件 semaphore.h 中定义 信号量的数据类型为结构 sem_t, 它本质上是一个长整型的数 函数 sem_init( ) 用来初始化一个信号量 它的原型为 : extern int sem_init _P ((sem_t *sem, int pshared, unsigned int value)); sem 为指向信号量结构的一个指针 ;pshared 不为 0 时, 此信号量在进程间共享, 否则只能为当前进程的所有线程共享 ;value 给出了信号量的初始值 1.13
14 函数 sem_post( sem_t *sem ) 用来增加信号量的值 当有线程阻塞在这个信号量上时, 调用这个函数会使其中的一个线程不再阻塞, 选择机制同样是由线程的调度策略决定的 函数 sem_wait( sem_t *sem ) 被用来阻塞当前线程直到信号量 sem 的值大于 0, 解除阻塞后将 sem 的值减一, 表明公共资源经使用后减少 函数 sem_destroy(sem_t *sem) 用来释放信号量 sem 下面, 我们利用信号量来实现经典的生产者与消费者问题 ( 源代码见下 ) 1.14
15 #include<stdio.h> #include<pthread.h> #include<semaphore.h> #include<stdlib.h> #include<unistd.h> #define N 5 int k=0; // 保存现有产品数量 sem_t full; sem_t empty; pthread_mutex_t mutex; void producer(void) int i=0; while(i<=5) sem_wait(&empty); pthread_mutex_lock(&mutex); k++; printf(" produce one Remaining:%d\n",k); pthread_mutex_unlock(&mutex); sem_post(&full); i++; sleep(1); 等待直到有空的缓冲区才能进入 对临界资源的访问必须加锁 生产一个产品后, 要占有一个空的缓冲区 1.15
16 void consumer(void) int j=0; while(j<=10) sem_wait(&full); pthread_mutex_lock(&mutex); k--; printf(" consumer one the rest :%d\n",k); pthread_mutex_unlock(&mutex); sem_post(&empty); sleep(1); j++; main() pthread_t thread1,thread2,thread3; sem_init(&full,0,0); sem_init(&empty,0,n); pthread_create(&thread1,null,(void*)producer,null); pthread_create(&thread2,null,(void*)producer,null); pthread_create(&thread3,null,(void*)consumer,null); pthread_join(thread1,null); pthread_join(thread2,null); pthread_join(thread2,null); 1.16 等待直到有货物可取时才能进入 消费后, 释放一个缓冲区 创建两个生产者线程, 一个消费者线程
17 运行结果 从运行结果可以看出, 当两个生产者生产的产品充满缓冲区时, 就会阻塞 ; 只有消费者消费了一个 ( 或多个 ) 时, 才可以生产, 各线程实现了同步与互斥 1.17
chap07.key
#include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,
More information将 Win32 C/C++ 应用程序迁移到 POWER 上的 Linux, 第 2 部分 : 互斥 Nam Keung 高级程序员 IBM 2005 年 4 月 21 日 ( 最初于 2005 年 2 月 10 日 ) Chakarat Sk
将 Win32 C/C++ 应用程序迁移到 POWER 上的 Linux, 第 2 部分 : 互斥 Nam Keung (mailto:namkeung@us.ibm.com) 高级程序员 IBM 2005 年 4 月 21 日 ( 最初于 2005 年 2 月 10 日 ) Chakarat Skawratananond (mailto:chakarat@us.ibm.com) pseries Linux
More informationMicrosoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc
2 5 8 11 0 13 1. 13 2. 15 3. 18 1 23 1. 23 2. 26 3. 28 2 36 1. 36 2. 39 3. 42 4. 44 5. 49 6. 51 3 57 1. 57 2. 60 3. 64 4. 66 5. 70 6. 75 7. 83 8. 85 9. 88 10. 98 11. 103 12. 108 13. 112 4 115 1. 115 2.
More information提纲 1 2 OS Examples for 3
第 4 章 Threads2( 线程 2) 中国科学技术大学计算机学院 October 28, 2009 提纲 1 2 OS Examples for 3 Outline 1 2 OS Examples for 3 Windows XP Threads I An Windows XP application runs as a seperate process, and each process may
More information1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un
Linux C July 27, 2016 Contents 1 Linux IDE 1 2 GCC 3 2.1 hello.c hello.exe........................... 5 2.2............................... 9 2.2.1 -Wall................................ 9 2.2.2 -E..................................
More information2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d
2013 18 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp, Compilation Error cin scanf Time Limit Exceeded 1: A 5 B 5 C 5 D 5 E 5 F 5 1 2013 C 1 # include 2 int main ( void ) 3 { 4 int cases, a, b,
More informationC C
C C 2017 3 8 1. 2. 3. 4. char 5. 2/101 C 1. 3/101 C C = 5 (F 32). 9 F C 4/101 C 1 // fal2cel.c: Convert Fah temperature to Cel temperature 2 #include 3 int main(void) 4 { 5 float fah, cel; 6 printf("please
More informationプログラムの設計と実現II
UNIX C ls mkdir man http://www.tj.chiba-u.jp/lecture/prog2/ Ctrl+x, Ctrl+s ( )..[4]% gcc Wall o hoge hoge.c..[5]%./hoge 1 : 1 2 : 2 3 : 3 4 : 0 6..[6]% (! )..[4]% gcc Wall o hoge hoge.c..[5]%!g gcc Wall
More informationC 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9
201 201 21 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 1 B 1 C 5 D RPG 10 E 10 F 1 G II 1 1 201 201 C 1 # include 2 int main ( void
More informationGuava学习之Resources
Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于
More information38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民
1 08414159 惠 鴻 眼 鏡 行 桃 園 市 中 壢 區 福 德 里 中 華 路 一 段 186 號 1 樓 30,000 獨 資 宋 耀 鴻 105/04/27 府 經 登 字 第 1059003866 號 2 17891110 承 元 冷 氣 空 調 工 程 行 桃 園 市 桃 園 區 中 德 里 國 際 路 1 段 98 巷 50 號 2 樓 之 4 200,000 獨 資 詹 安 平
More information2013 C 1 #include <stdio.h> 2 int main(void) 3 { 4 int cases, i; 5 long long a, b; 6 scanf("%d", &cases); 7 for (i = 0; i < cases; i++) 8 { 9 scanf("%
2013 ( 28 ) ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 10 B 1 C 1 D 5 E 5 F 1 G II 5 H 30 1 2013 C 1 #include 2 int main(void) 3
More information第 1 页共 9 页 文档履历 版本号日期制 / 修订人内容描述 V 正式版本
V3s 项目 CamDroid 编译第三方程序 / V1.0 第 1 页共 9 页 文档履历 版本号日期制 / 修订人内容描述 V1.0 2014-04-23 正式版本 第 2 页共 9 页 目录 1. 交叉编译环境... 3 2. 第三方库的 Makefile 示例... 4 3. 第三方应用 Makefile 示例... 5 4. 第三方应用 CamLinux.mk 示例... 6 5. 常见错误...
More informationC/C++ - 文件IO
C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;
More information_汪_文前新ok[3.1].doc
普 通 高 校 本 科 计 算 机 专 业 特 色 教 材 精 选 四 川 大 学 计 算 机 学 院 国 家 示 范 性 软 件 学 院 精 品 课 程 基 金 青 年 基 金 资 助 项 目 C 语 言 程 序 设 计 (C99 版 ) 陈 良 银 游 洪 跃 李 旭 伟 主 编 李 志 蜀 唐 宁 九 李 涛 主 审 清 华 大 学 出 版 社 北 京 i 内 容 简 介 本 教 材 面 向
More informationC
C 14 2017 5 31 1. 2. 3. 4. 5. 2/101 C 1. ( ) 4/101 C C ASCII ASCII ASCII 5/101 C 10000 00100111 00010000 ASCII 10000 31H 30H 30H 30H 30H 1 0 0 0 0 0 ASCII 6/101 C 7/101 C ( ) ( ) 8/101 C UNIX ANSI C 9/101
More informationC 1
C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=
More information新・解きながら学ぶC言語
330!... 67!=... 42 "... 215 " "... 6, 77, 222 #define... 114, 194 #include... 145 %... 21 %... 21 %%... 21 %f... 26 %ld... 162 %lf... 26 %lu... 162 %o... 180 %p... 248 %s... 223, 224 %u... 162 %x... 180
More information关于多线程的创建是会遇到下面的一个问题的 : #include<windows.h> #include<stdio.h> #define MAX_THREADS 5 typedef struct _THREAD_PARAM DWORD i; DWORD dwrandom; DWORD dwdata;
进程, 线程, 并发 文 / 席臣 写这个文档是希望通过, 概念的理解和程序的测试认识 进程 线程 并发等概念 关于基本概念不想写太多, 操作系统每本书里面都会重点讲的, 看了一些资料, 有一些自己的理解 进程是表示资源分配的基本单位, 它运行起来需要的是系统资源, 是系统给他分配的一些资源 至于是不是系统调度的基本单位, 实际上跟操作系统内核是有关系的, 在 Mac Windows NT 等采用微内核结构的操作系统中,
More information新版 明解C言語入門編
328, 4, 110, 189, 103, 11... 318. 274 6 ; 10 ; 5? 48 & & 228! 61!= 42 ^= 66 _ 82 /= 66 /* 3 / 19 ~ 164 OR 53 OR 164 = 66 ( ) 115 ( ) 31 ^ OR 164 [] 89, 241 [] 324 + + 4, 19, 241 + + 22 ++ 67 ++ 73 += 66
More information考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09:50 25 26 27 28 29 30 31 32 33 34 35 36 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一
考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09:50 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 五 專 企 二 乙 胡 哲 維 中 文 輸 入 五 專 企 二 乙 周 林 昜 中 文 輸 入 五 專 企 二 乙 賴 昱 樺 中 文 輸 入 五 專 企 二 乙
More informationMicrosoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc
2 5 8 11 0 1. 13 2. 15 3. 18 1 1. 22 2. 25 3. 27 2 1. 35 2. 38 3. 41 4. 43 5. 48 6. 50 3 1. 56 2. 59 3. 63 4. 65 5. 69 13 22 35 56 6. 74 7. 82 8. 84 9. 87 10. 97 11. 102 12. 107 13. 111 4 114 1. 114 2.
More informationC
C 2017 3 14 1. 2. 3. 4. 2/95 C 1. 3/95 C I 1 // talkback.c: 2 #include 3 #include 4 #define DENSITY 62.4 5 int main(void) 6 { 7 float weight, volume; 8 int size; 9 unsigned long letters;
More information新・明解C言語入門編『索引』
!... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177
More information附件三
行 拉 契 沈 旅 年 錄 行 拉 契 行 行 力 力 不 拉 契 寧 說 參 來 更 來 更 力 力 什 說 拉 契 立 利 來 拉 契 力 年 拉 契 不 不 不 不 識 不 不 理 領 不 更 來 說 裡 靈 來 不 來 路 都 讀 了 更 說 旅 不 度 年 羅 年 讀 都 理 理 羅 讀 了 行 了 路 行 行 旅 行 降 落 北 羅 拉 契 倫 車 來 倫 拉 契 錄 狀 錄 來 來 行
More information没有幻灯片标题
指针作为函数参数 : 原因 : 1 需要修改一个或多个值,( 用 return 语句不能解决问题 ) 2 执行效率的角度 使用方法 : 在函数原型以及函数首部中需要声明能够接受指针值的形参, 具体的写法为 : 数据类型 * 形参名 如果有多个指针型形参, 则用逗号分隔, 例如 : void swap(int *p1, int *p2) 它说明了形参 p1 p2 是指向整型变量的指针 在函数调用时,
More informationC/C++语言 - C/C++数据
C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;
More information帝国CMS下在PHP文件中调用数据库类执行SQL语句实例
帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)
More informationC++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1
C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,
More information2005 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / Sun Sun Microsystems Su
Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. 819 7051 10 2006 10 2005 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A. Sun Sun Berkeley BSD UNIX X/Open
More informationMicrosoft PowerPoint - uClinux_zou
uclinux 应用开发指南 邹建国 ah_zou@163.com 2004-3-13 总目录 1. UP-NetARM3000 开发设备介绍 2. 软件开发环境的安装与配置 3. 内核及根文件系统的烧写 4. uclinux 下的应用程序开发过程 5. Makefile 编写指南 6. gcc 编译器的使用 7. 常用 LINUX 命令简单介绍 8. 脚本编程 9. 多线程编程 10. 嵌入式 LINUX
More information目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016
档 案 局 2016 年 度 部 门 预 算 1 目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016 年 度 市 级 部 门 财 政 拨 款 支 出 预
More information2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 168738.36 一 一 般 公 共 服 务 支 出 53.83 二
2015 年 度 部 门 决 算 报 表 ( 含 三 公 经 费 决 算 ) 2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 168738.36 一 一 般 公 共 服 务 支 出 53.83 二 上 级 补 助 收 入
More informationC/C++ - 字符输入输出和字符确认
C/C++ Table of contents 1. 2. getchar() putchar() 3. (Buffer) 4. 5. 6. 7. 8. 1 2 3 1 // pseudo code 2 read a character 3 while there is more input 4 increment character count 5 if a line has been read,
More informationNatural Language Processing, Topic Modeling, Neural Text Generation and Ali Xiaomi
并行计算 :Parallel Computing 结构编程算法应用 3.4 Python 并发程序设计 徐悦甡 (Yueshen Xu) ysxu@xidian.edu.cn 软件工程系西安电子科技大学 本节提纲 Python 语言基础 Python 基础语法 Python 面向对象编程 Python 并发程序设计 (Concurrency) Python 多线程机制 Python 中线程的创建 Python
More information1 2032.1.16, 6:01 AM 2 2032.1.16, 6:01 AM 3 2032.1.16, 6:01 AM ( ) 4 2032.1.16, 6:01 AM 5 2032.1.16, 6:01 AM 6 2032.1.16, 6:01 AM 9 2032.1.16, 6:01 AM 10 2032.1.16, 6:02 AM 1 1 2009 7 2 3 2 2009 7 1
More information第一章 概论
1 2 3 4 5 6 7 8 Linux 7.1 7.1.1 1 1 2 3 2 3 1 2 3 3 1 2 3 7.1.2 1 2 1 2 3 4 5 7.1.3 1 1 2 3 2 7.1 3 7.1.4 1 1 PCB 2 3 2 PCB PCB PCB PCB PCB 4 1 2 PSW 3 CPU CPU 4 PCB PCB CPU PCB PCB PCB PCB PCB PCB PCB
More informationCC213
: (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,
More informationMicrosoft PowerPoint - 3. 函数Functionl.ppt [兼容模式]
函数 Function 如何重用代码 How to reuse code 3 4 = 3*3*3*3 3 4,6 5 : 拷贝 - 粘帖代码 (Copy-paste code) 3 4,6 5,12 10 : 拷贝 - 粘帖代码 (Copy-paste code) Bad! 使用函数 (with a function) 使用函数 (with a function) 使用函数 (with a function)
More informationC/C++程序设计 - 字符串与格式化输入/输出
C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int
More information1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File
51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test
More information华恒家庭网关方案
LINUX V1.5 1 2 1 2 LINUX WINDOWS PC VC LINUX WINDOWS LINUX 90% GUI LINUX C 3 REDHAT 9 LINUX PC TFTP/NFS http://www.hhcn.com/chinese/embedlinux-res.html minicom NFS mount C HHARM9-EDU 1 LINUX HHARM9-EDU
More informationuntitled
A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (
More informationC/C++语言 - 运算符、表达式和语句
C/C++ Table of contents 1. 2. 3. 4. C C++ 5. 6. 7. 1 i // shoe1.c: # include # define ADJUST 7. 64 # define SCALE 0. 325 int main ( void ) { double shoe, foot ; shoe = 9. 0; foot = SCALE * shoe
More informationC/C++ - 函数
C/C++ Table of contents 1. 2. 3. & 4. 5. 1 2 3 # include # define SIZE 50 int main ( void ) { float list [ SIZE ]; readlist (list, SIZE ); sort (list, SIZE ); average (list, SIZE ); bargragh
More informationエスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******
******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);
More informationGuava学习之CharSequenceReader
CharSequenceReader 类是以 CharSequence 的形式读取字符 CharSequenceReader 类继承自 Reader 类, 除了 remaining() hasremaining() 以及 checkopen() 函数之后, 其他的函数都是重写 Reader 类中的函数 CharSequenceReader 类声明没有用 public 关键字, 所以我们暂时还不能调用这个类
More informationstatic struct file_operations gpio_ctl_fops={ ioctl: gpio_ctl_ioctl, open : gpio_open, release: gpio_release, ; #defineled1_on() (GPBDAT &= ~0x1) #def
Kaise s 2410 Board setting [1]. Device Driver Device Driver Linux s Kernel ARM s kernel s3c2410_kernel2.4.18_r1.1_change.tar.bz2 /usr/src (1) #cd /usr/src (2) #tar xfj s3c2410_kernel2.4.18_r1.1_change.tar.bz2
More information1
1 2 3 4 5 GNUDebugger 6 7 void main(int argc, char **argv){ vulncpy(argv[1]); return; } void vulncpy(char *a){ char buf[30]; strcpy(buf, a); return; } *argv[1] buf Shellcode *argv[1]... &buf &buf 8 strcpy
More informationebook
3 3 3.1 3.1.1 ( ) 90 3 1966 B e r n s t e i n P ( i ) R ( i ) W ( i P ( i P ( j ) 1) R( i) W( j)=φ 2) W( i) R( j)=φ 3) W( i) W( j)=φ 3.1.2 ( p r o c e s s ) 91 Wi n d o w s Process Control Bl o c k P C
More informationMicrosoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]
Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];
More informationNOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p
NOWOER.OM /++ 程师能 评估. 单项选择题 1. 下 描述正确的是 int *p1 = new int[10]; int *p2 = new int[10](); p1 和 p2 申请的空间 的值都是随机值 p1 和 p2 申请的空间 的值都已经初始化 p1 申请的空间 的值是随机值,p2 申请的空间 的值已经初始化 p1 申请的空间 的值已经初始化,p2 申请的空间 的值是随机值 2.
More information《C语言程序设计》第2版教材习题参考答案
教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p =
More informationC++ 程式設計
C C 料, 數, - 列 串 理 列 main 數串列 什 pointer) 數, 數, 數 數 省 不 不, 數 (1) 數, 不 數 * 料 * 數 int *int_ptr; char *ch_ptr; float *float_ptr; double *double_ptr; 數 (2) int i=3; int *ptr; ptr=&i; 1000 1012 ptr 數, 數 1004
More information技 术 文 件
技术文件 技术文件名称 :IAlert 接口使用说明 技术文件编号 : 版 本 :V1.0 共页 ( 包括封面 ) 拟制 审核 会签 标准化 批准 中兴通讯股份有限公司 XX 软件模块详细设计说明 版本号 修改记录 文件编号 版本号 拟制人 / 修改人 拟制 / 修改日期 1 V1.0 胡曦 2005-08-12 新建 更改理由 主要更改内容 ( 写要点即可 ) 注 1: 每次更改归档文件 ( 指归档到事业部或公司档案室的文件
More informationebook15-10
1 0 10.1 U N I X V 7 4. 3 B S D S V R 3 P O S I X. 1 100 % 10.2 S I G S I G A B RT a b o r t S I G A L R M a l a r m V 7 1 5 S V R 4 4. 3 + B S D 31 < s i g n a l. h > 0 10. 9 k i l l 0 P O S I X. 1 D
More informationnooog
C : : : , C C,,, C, C,, C ( ), ( ) C,,, ;,, ; C,,, ;, ;, ;, ;,,,, ;,,, ; : 1 9, 2 3, 4, 5, 6 10 11, 7 8, 12 13,,,,, 2008 1 1 (1 ) 1.1 (1 ) 1.1.1 ( ) 1.1.2 ( ) 1.1.3 ( ) 1.1.4 ( ) 1.1.5 ( ) 1.2 ( ) 1.2.1
More informationuntitled
1 1.1 1.2 1.3 1.4 1.5 ++ 1.6 ++ 2 BNF 3 4 5 6 7 8 1.2 9 1.2 IF ELSE 10 1.2 11 1.2 12 1.3 Ada, Modula-2 Simula Smalltalk-80 C++, Objected Pascal(Delphi), Java, C#, VB.NET C++: C OOPL Java: C++ OOPL C# C++
More informationMicrosoft PowerPoint - C_Structure.ppt
結構與其他資料型態 Janet Huang 5-1 結構的宣告 struct 結構名稱 struct 結構名稱變數 1, 變數 2,, 變數 m; struct 結構名稱 變數 1, 變數 2,, 變數 m; student; student; 5-2 1 結構變數初值的設定 struct 結構名稱 struct 結構名稱變數 = 初值 1, 初值 2,, 初值 n student="janet","1350901",100,95
More information《C语言程序设计》教材习题参考答案
教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,
More informationuntitled
不 料 料 例 : ( 料 ) 串 度 8 年 數 串 度 4 串 度 數 數 9- ( ) 利 數 struct { ; ; 數 struct 數 ; 9-2 數 利 數 C struct 數 ; C++ 數 ; struct 省略 9-3 例 ( 料 例 ) struct people{ char name[]; int age; char address[4]; char phone[]; int
More informationOOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料
OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP
More informationextend
(object oriented) Encapsulation Inheritance Polymorphism Dynamic Binding (base class) (derived class) 1 class Base { int I; void X(); void Y(); class Derived: public Base { private: int j; void z(); Derived
More informationIntelBook_cn.doc
3.3.3 信号 (Signal) 处理 信号 (signal) 是向进程发送的软件通知, 通知进程有事件发生 引发信号的事件发生时, 信号就被生成 (generate) 了 进程根据信号采取行动时, 信号就被传递 (deliver) 了 信号的寿命 (lifetime) 就是信号的生成和传递之间的时间间隔 已经生成但还未被传递的信号被称为挂起 (pending) 的信号 在信号生成和信号传递之间可能会有相当长的时间
More informationMicrosoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]
指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++
More informationMicrosoft Word - Index.doc
Programmer: B95902048 B95902085 WaveData #include ham // gfx2gba -fsrc -m -pb.pal -t8 water.bmp bg1.bmp bg2.bmp gameover.bmp water_atked.bmp #include "gfx/bg.pal.c" #include "gfx/bg.raw.c"
More informationuntitled
3 C++ 3.1 3.2 3.3 3.4 new delete 3.5 this 3.6 3.7 3.1 3.1 class struct union struct union C class C++ C++ 3.1 3.1 #include struct STRING { typedef char *CHARPTR; // CHARPTR s; // int strlen(
More informationC/C++ - 字符串与字符串函数
C/C++ Table of contents 1. 2. 3. 4. 1 char C 2 char greeting [50] = " How " " are " " you?"; char greeting [50] = " How are you?"; 3 printf ("\" Ready, go!\" exclaimed John."); " Ready, go!" exclaimed
More informationuntitled
1 7 7.1 7.2 7.3 7.4 7.5 2 7.1 VFT virtual 7.1 3 1 1. 2. public protected public 3. VFT 4. this const volatile 4 2 5. ( ) ( ) 7.1 6. no-static virtual 7.2 7. inline 7.3 5 3 8. this this 9. ( ) ( ) delete
More informationint *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;
Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,
More informationESP-Jumpstart
2016-2019 2019 08 08 Contents 1 3 1.1 ESP32.............................. 3 1.2.................................................. 5 2 7 2.1............................................. 7 2.2 ESP-IDF............................................
More informationC
C 2017 4 1 1. 2. while 3. 4. 5. for 6. 2/161 C 7. 8. (do while) 9. 10. (nested loop) 11. 12. 3/161 C 1. I 1 // summing.c: 2 #include 3 int main(void) 4 { 5 long num; 6 long sum = 0L; 7 int status;
More information新版 明解C++入門編
511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,
More information专题一.ppt
Android 核心入门分析 Jack.fan Copyright 2007-2008 Farsight. All rights reserved. 主要内容 : } 1 android 系统启动流程分析 } 2 android 系统 JNI 和 Binder 使用简介 } 3 android 系统输入子系统模型分析 1.1 android 系统启动流程分析 : } 1). } init 进程启动控制台进程
More informationNatural Language Processing, Topic Modeling, Neural Text Generation and Ali Xiaomi
并行计算 :Parallel Computing 结构编程算法应用 3.3 Java 并发与并行程序 设计 徐悦甡 (Yueshen Xu) ysxu@xidian.edu.cn 软件工程系西安电子科技大学 本节提纲 Java 语言基础讨论 Java 并发程序设计 Java 多线程机制 Java 中多线程的创建 Thread 方法途径 Runnable 接口途径 Java 多线程程序举例 Java
More informationC C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40
C C trio@seu.edu.cn C C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 Week3 C Week5 Week5 Memory & Pointer
More informationC/C++ 语言 - 循环
C/C++ Table of contents 7. 1. 2. while 3. 4. 5. for 6. 8. (do while) 9. 10. (nested loop) 11. 12. 13. 1 // summing.c: # include int main ( void ) { long num ; long sum = 0L; int status ; printf
More informationC++ 程序设计 实验 1 - 参考答案 MASTER 2017 年 5 月 21 日 1
C++ 程序设计 实验 1 - 参考答案 MASTER 2017 年 5 月 21 日 1 1 简单图形 1 简单图形 输入图形的行数 ( 如下图 7 行 ), 输出如下图所示图形 * *** ***** ******* ***** *** * 2 1 简单图形 1 #inc lude 2 using namespace std ; 3 4 // 注意变量命名的方式 5 //
More information无类继承.key
无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255
More information01_Service
移动平台应用软件开发 Service 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组 北京大学 二零一七年 什么是 Service 与 Activity 一样, 同属 Android 基本组件 后台运行, 不与用户交互, 没有可视化界面 最常见的 Service 如 : 在后台播放歌曲 后台执行文件的下载 同样需在 AndroidManifest.xml
More information目 录 第 一 卷 3 第 一 章 第 二 章 供 应 商 须 知 3 合 同 ( 格 式 ) 16 第 三 章 附 件 17 第 二 卷 33 第 四 章 第 五 章 第 六 章 第 七 章 询 价 邀 请 34 询 价 资 料 表 35 合 同 条 款 资 料 表 38 货 物 需 求 及 技
河 南 省 商 务 中 等 职 业 学 校 数 控 车 教 学 软 件 ( 平 台 ) 询 价 采 购 文 件 招 标 人 : 河 南 省 商 务 中 等 职 业 学 校 代 理 机 构 : 北 京 国 泰 建 中 管 理 咨 询 有 限 公 司 日 期 :2016 年 8 月 30 日 0 目 录 第 一 卷 3 第 一 章 第 二 章 供 应 商 须 知 3 合 同 ( 格 式 ) 16 第 三
More informationebook 86-15
15 G t k + d e l e t e _ e v e n t G n o m e G n o m e 15.1 GnomeDialog G t k + G n o m e D i a l o g 15.1.1 G n o m e D i a l o g g n o m e _ d i a l o g _ n e w ( ) G N O M E _ D I A L O G ( d i a l
More information学习MSP430单片机推荐参考书
MSP430 16 MSP430 C MSP430 C MSP430 FLASH 16 1 CPU 16 ALU 16 PC SP SR R4~R15 2 3 00-FFH 100-1FFH 4 5 1 2 51 24 27 6 1 2 3 4 5 6 4 12 SR SP SR CPU SR CPU C Z N GIE CPUOff CPU OscOff SCG0 SCG1 CPU EXIT SP
More informationC++ 程序设计 实验 3 - 参考答案 MASTER 2017 年 5 月 21 日 1
C++ 程序设计 实验 3 - 参考答案 MASTER 2017 年 5 月 21 日 1 1 圆 1 圆 设计圆类 包含 包含基本属性和基本属性访问接口 计算面积和周长接口 2 1 圆 1 #include 2 using namespace std ; 3 c l a s s CCircle 4 { 5 p r i v a t e : 6 double r ; 7 const
More information11 基于进程的并发编程 2017 年 5 月 3 日 20:22 1. 对于在父 子进程间共享状态信息, 进程有一个非常清晰的模型 : 共享文件表, 但是不共享文件空间 进程有独立的地址空间既是优点也是缺点 : a. ( 优点 ) 一个进程不可能不小心覆盖另一个进程的虚拟存储器 b. ( 缺点 )
12 并发编程 2017 年 4 月 5 日 9:21 1. 并发不仅是一种操作系统内核用来运行多个应用程序的机制, 应用级并发在以下这些情况下也是发挥了很大的作用 : a. 访问慢速 I/O 设备 b. 与人交互 c. 通过推迟工作以降低延迟 d. 服务多个网络客户端 e. 在多核机器上进行并行计算并发程序 : 使用应用级并发的应用程序 现代操作系统提供了三种基本的构造并发程序的方法 : a. 进程
More informationuntitled
1 DBF (READDBF.C)... 1 2 (filetest.c)...2 3 (mousetes.c)...3 4 (painttes.c)...5 5 (dirtest.c)...9 6 (list.c)...9 1 dbf (readdbf.c) /* dbf */ #include int rf,k,reclen,addr,*p1; long brec,erec,i,j,recnum,*p2;
More informationnb.PDF
1 3 5...7 2 http 2002 1 516,849,866.84 2 67,109,835.55 3 49,250,238.66 4 76,863,322.66 5 599,145.88 6 57,763,987.82 7 15,755,857.92 8 0 3 9 977,169.50 10138,494,475.51 11-8,067,539.70 1 15,501,288.02 2
More informationTitle Unassigned.
基本操作流程 用 usock 函数编写 TCP 客户端程序 usock_open 用 usock_open 获取一个 usock 描述符 usock_connect 用刚才返回的描述符进行 connect 操作 connect 时指定的对方地址用 usockaddr_in 结构体描述 usock_write 用 usock_write 写数据给对方, 用 usock_read 读取对方发来的数据 usock_read
More informationC/C++ - 数组与指针
C/C++ Table of contents 1. 2. 3. 4. 5. 6. 7. 8. 1 float candy [ 365]; char code [12]; int states [50]; 2 int array [6] = {1, 2, 4, 6, 8, 10}; 3 // day_mon1.c: # include # define MONTHS 12 int
More information说 : 荀 子 极 偏 驳, 只 一 句 性 恶, 大 本 已 失 5 朱 熹 说 : 荀 扬 不 惟 说 性 不 是, 从 头 到 底 皆 不 识 6 采 取 的 都 是 这 种 理 论 框 架 另 一 种 理 论 框 架 始 于 20 世 纪 前 期, 这 便 是 诸 子 学 研 究 的 框 架
第 一 章 绪 论 1. 问 题 与 文 献 本 文 试 图 探 讨 的 核 心 问 题, 一 言 以 蔽 之, 是 要 理 解 并 诠 释 荀 子 思 想 的 基 本 性 格 先 交 代 研 究 方 法 迄 今 为 止 的 荀 学 研 究 1 大 致 存 在 两 种 研 究 框 架 第 一 种 研 究 框 架 是 理 学 研 究 的 理 论 框 架 2, 该 框 架 主 张 以 孔 孟 作 为 研
More information