代码与程序的区别与联系
2017-08-08 11:02
232 查看
代码与程序的区别与联系,你真的懂么?请试着解释下面2段代码。
能看得懂这2段代码,才算是入门了吧~ (有的时候口头上能说出来和真正的理解可不一样 ←_←)
总结:代码只有一份,新建一个进程或线程不过是新建了一个“上下文”或“程序指针”(程序计数器PC),重新指向原来那段代码。
[1] linux中fork()函数详解(原创!!实例讲解)
[2] Java Thread(线程)案例详解sleep和wait的区别
//第一段程序:fork与多进程 #include <unistd.h> #include <stdio.h> int main () { pid_t fpid=fork(); if (fpid < 0) printf("error in fork!"); else if (fpid == 0) printf("i am the child process, my process id is %d/n",getpid()); else printf("i am the parent process, my process id is %d/n",getpid()); return 0; }
//第二段程序:sleep(wait)与多线程 public class ThreadTest implements Runnable { int number = 10; public void firstMethod() throws Exception { synchronized (this) { number += 100; System.out.println(number); } } public void secondMethod() throws Exception { synchronized (this) { Thread.sleep(2000);//1.sleep的是哪个线程? 2.如果把本行换成下一行的语句,程序执行会有什么不同? //this.wait(2000); number *= 200; } } @Override public void run() { try { firstMethod(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { ThreadTest threadTest = new ThreadTest(); Thread thread = new Thread(threadTest); thread.start(); threadTest.secondMethod(); } }
能看得懂这2段代码,才算是入门了吧~ (有的时候口头上能说出来和真正的理解可不一样 ←_←)
总结:代码只有一份,新建一个进程或线程不过是新建了一个“上下文”或“程序指针”(程序计数器PC),重新指向原来那段代码。
附:
[1] linux中fork()函数详解(原创!!实例讲解)[2] Java Thread(线程)案例详解sleep和wait的区别
相关文章推荐
- 程序、进程、线程区别与联系
- 程序,进程及线程的区别于联系
- 程序、进程、线程区别与联系
- 程序、进程、作业之间的区别与联系
- 程序,进程,作业之间的区别和联系
- 堆和栈的区别,顺便介绍一下:全局区(静态区)、文字常量区、程序代码区
- 程序、进程、作业之间的区别与联系
- 程序、进程、作业之间的区别与联系
- 数据库先锋Ingres公司的高级副总裁和硅谷最著名的女性程序员之一相信男性和女性编写的程序是有区别的.火星男人编写的代码很不清晰,而金星女人编写的代码更有用.
- 程序、进程、线程区别与联系
- 编写高质量代码改善C#程序的157个建议——建议3: 区别对待强制转型与as和is
- 数据流图、程序结构图和系统结构图的区别和联系
- 进程和程序区别和联系
- 学习笔记--进程与程序的区别和联系
- 程序、进程、线程区别与联系
- 启动代码和BootLoader的区别和联系
- 程序、进程、作业之间的区别与联系
- 程序代码中退出函数exit()与返回函数return ()的区别
- 程序、进程、线程区别与联系
- Linux - 进程、线程、程序之间的区别与联系