线程同步
同属于一个进程的不同线程是共享内存的,因而在执行过程中需要考虑数据的一致性。
假设:进程有一变量i=0,线程A执行i++,线程B执行i++,那么最终i的取值是多少呢?似乎一定是i=2;其实不然,如果没有考虑线程同步,i的取值可能是1.我们先考虑自加操作的过程:a,首先将内存中i的值copy到寄存器;b,对寄存器中i的copy进行自加;c,将寄存器中自加的结...
分类:
编程语言 时间:
2014-09-25 14:13:09
阅读次数:
297
作用域只是一个“地盘”,一个抽象的概念,其中没有变量。要通过作用域对应的执行上下文环境来获取变量的值。同一个作用域下,不同的调用会产生不同的执行上下文环境,继而产生不同的变量的值。所以,作用域中变量的值是在执行过程中产生的确定的,而作用域却是在函数创建时就确定了。所以,如果要查找一个作用域下某个变量的值,就需要找到这个作用域对应的执行上下文环境,再在其中寻找变量的值。...
分类:
编程语言 时间:
2014-09-25 11:06:59
阅读次数:
246
Statement执行过程 一个sql语句执行过程中,将经历这么几个步骤: 传输sql到数据库。 数据库检查sql的语法合法性,并解析sql。 计算Access Plan。数据库会通过检测index,statistics来给出最优的访问计划。 根据访...
分类:
其他好文 时间:
2014-09-25 04:15:38
阅读次数:
491
执行过程public void method(Action action){ //2.method执行中 try { action(); //3.调用委托 string x = "5"; //如果action执行时出现了error,但是内部有catch机...
分类:
其他好文 时间:
2014-09-24 13:10:46
阅读次数:
155
一 MFC程序执行过程剖析1)我们知道在WIN32API程序当中,程序的入口为WinMain函数,在这个函数当中我们完成注册窗口类,创建窗口,进入消息循环,最后由操作系统根据发送到程序窗口的消息调用程序的窗口函数。而在MFC程序当中我们不在能找到类似WinMain这样的程序入口,取而代之的是一系列派...
分类:
其他好文 时间:
2014-09-21 16:15:20
阅读次数:
302
声明:转载请注明出处static{}(即static块),会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法,下面我们详细的讨论一下该语句块的特性及应用。一、在程序的一次执行过程中,static{}语句块中的内容只被执行一次,看下面的示例:示例一[java]view pla...
分类:
其他好文 时间:
2014-09-20 11:05:17
阅读次数:
172
问题:对于跨域问题,研究了一下html5的postMessage,写了代码测试了一下,感觉html5新功能就是好用啊。 此文仅使用html5的新特性postMessage,演示其执行过程和效果:方法解释:postMessage()方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本档、...
分类:
Web程序 时间:
2014-09-20 01:05:56
阅读次数:
257
一、线程栈模型
线程栈模型是理解线程调度原理以及线程执行过程的基础。线程栈是指某时刻时内存中线程调度的栈信息,当前调用的方法总是位于栈顶,线程栈的内容是随着线程的运行状态变化而变化的,研究线程栈必须选择一个运行的时刻(指代码运行到什么地方)
上图中的栈A是主线程main的运行栈信息,当执行new JavaThreadDemo().threadMethod();方法时,threadMet...
分类:
编程语言 时间:
2014-09-19 22:35:56
阅读次数:
325
1、一个程序至少有一个进程,一个进程至少有一个线程.2、线程(Thread)是进程的一个实体,是CPU调度和分派的基本单位3、进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率因为要并发,我们发明了进程,又进一步发明了线程。只不过进程和线程的并发层次不同:进程属于...
分类:
编程语言 时间:
2014-09-19 17:24:35
阅读次数:
256
当执行eval时,会执行如下过程 eval(x):1.如果 x的类型不是string,那么会return x;2.把x转换成 ecmascript 代码。如果转换失败,责抛出SyntaxError异常。3.为转换后的代码建立一个新的执行上下文环境,并存入evalCtx;4.执行转换后的代码,并将结果...
分类:
编程语言 时间:
2014-09-19 13:38:55
阅读次数:
172