当前位置: 首页>移动开发>正文

Android程序空转会对cpu影响大吗 什么叫程序空转

字节码与IL语言

字节码(Byte-code)是一种包含执行程序,由一序列 op 代码/数据对组成的二进制文件,是一种中间码。字节是电脑里的数据量单位。

Android程序空转会对cpu影响大吗 什么叫程序空转,Android程序空转会对cpu影响大吗 什么叫程序空转_等待队列,第1张

 

可空类型Nullable到底是什么鬼

============================

脚本语言(Script languages,scripting programming languages,scripting languages)是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批处理语言或工作控制语言。一个脚本通常是解释运行而非编译。虽然许多脚本语言都超越了计算机简单任务自动化的领域,成熟到可以编写精巧的程序,但仍然还是被称为脚本。几乎所有计算机系统的各个层次都有一种脚本语言。包括操作系统层,如计算机游戏,网络应用程序,文字处理文档,网络软件等。在许多方面,高级编程语言和脚本语言之间互相交叉,二者之间没有明确的界限。一个脚本可以使得本来要用键盘进行的相互式操作自动化。一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组序列。主要用来书写这种脚本的语言叫做脚本语言。很多脚本语言实际上已经超过简单的用户命令序列的指令,还可以编写更复杂的程序。

脚本语言:命令序列,有语句有类型变成复杂语言。

最简单的脚本语言是命令,command模式,if逻辑判断。宏就是命今录制或命令序列。批次处理语言或工作控制语言或自动化。

各个层面都有自己的脚本,来解决灵活性问题,动态语言,操作系统是powershell,word也有vbs,lua是C的,js是流览器的。数据库SQL.

动静结合。

语言编写和运作:编写=》编译=》运作(操作系统支持),前两步放一起(程序员编写阶段)叫静态语言,后两个放在一起叫动态语言或脚本语言或解释型语言。

编写=》编译=》中间语言(运行时JVM/.net runtime)=》运作(操作系统支持):中间语言是为了解决跨平台问题,如webassembly,或字节码,或IL,整个过程分为四步,两边都占好。

 

 

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。

Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。

在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。

 

语言编写可经编译成另外一种动态语言,或别一个中间语言,或另一种静态语言。

动态:灵活,单小生产效率高,较难统一、较难大型。运行慢一些。扩建的语言/脚本/动态。方便修改,部署。自带工具。

静态语言:严谨,大工程,整体生产效率高。不够灵活。运行快。需要工具。

Android程序空转会对cpu影响大吗 什么叫程序空转,Android程序空转会对cpu影响大吗 什么叫程序空转_等待队列_02,第2张

 

================================================

WebAssembly入门:将字节码带入Web世界

 

使用js vm支持的语言,编写=》编译(工具,人可以写,任何语言)=》中间语言(byte语言,机器好识/运行时JVM/.net runtime)=》运作(操作系统支持)

http://www.360zhijia.com/360anquanke/192092.html

WebAssembly与基于MS ActiveX/Adobe Flash/Orcale Java Applet/MS Silverlight/Google NaCl

Mozilla发布了asm.js

 

===========================

 

C# Monitor Wait()和Pulse()

 

事件通知机制,开门方式。每个线程一个变量

wait(object),object将关联 thread、等待队列wait queue, 就绪队列 read queue

 

 

Assembly code

|- 拥有锁的线程 lockObj->|- 就绪队列(ready queue) |- 等待队列(wait queue)

当一个线程尝试着lock一个同步对象的时候,该线程就在就绪队列中排队。一旦没人拥有该同步对象,就绪队列中的线程就可以占有该同步对象。这也是我们平时最经常用的lock方法。
为了其他的同步目的,占有同步对象的线程也可以暂时放弃同步对象,并把自己流放到等待队列中去。这就是Monitor.Wait。由于该线程放弃了同步对象,其他在就绪队列的排队者就可以进而拥有同步对象。

比起就绪队列来说,在等待队列中排队的线程更像是二等公民:他们不能自动得到同步对象,甚至不能自动升舱到就绪队列。而Monitor.Pulse的作用就是开一次门,使得一个正在等待队列中的线程升舱到就绪队列;相应的Monitor.PulseAll则打开门放所有等待队列中的线程到就绪队列。

 

ManualResetEvent(手动重事件)和AutoResetEvent(自动重置事件)

ManualResetEvent 是一线程用来控制别一个线程的信号(广义的notity与pv是否有关呢,一个生产,一个消费,一个buffer)

 

 

ManualResetEvent 对象的两个控制方法。

1、this.manualEvent.Reset(); //将事件状态设置为非终止状态,导致线程阻止。(进入等待队列)

2、this.manualEvent.Set();   //将事件状态设置为终止状态,允许一个或多个等待线程继续。(进入就绪队列)

事件等待和通知。wait和notify

P就是请求资源,V就是释放资源。开门操作,门伐操作。

在计算机操作系统中,PV操作是进程管理中的难点。
首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程,操作系统级别,非硬件级别,非应用级别),对信号量进行操作,具体定义如下:
    P(S):①将信号量S的值减1,即S=S-1;
           ②如果S³0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。
    V(S):①将信号量S的值加1,即S=S+1;
           ②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。
PV操作的意义:我们用信号量及PV操作来实现进程的同步和互斥。PV操作属于进程的低级通信。
什么是信号量?信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意,信号量的值仅能由PV操作来改变。

     一般来说,信号量S³0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S£0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。

 

semaphore:控制并发线程数,信号工具类。

生产消费,多个生产消费者,buffer是缓冲区。搬砖和马路,车位,交通信号灯。

搬砖:100个人搬砖进来in, 100个人搬砖出去out,buffer是只能有50块砖。

厕所坑位:10个人进来in, 10个人出去out,buffer是5个坑位。即达到了控制线程数。

 

Semaphore 类(操作系内核级别是应用级别来控制呢)

限制可同时访问某一资源或资源池的线程数。

https://msdn.microsoft.com/zh-cn/library/system.threading.semaphore.aspx

============================

如何制定计划

https://baike.baidu.com/item/%E8%AE%A1%E5%88%92/2696339?fr=aladdin

 

Android程序空转会对cpu影响大吗 什么叫程序空转,Android程序空转会对cpu影响大吗 什么叫程序空转_信号量_03,第3张

 

 

预算是计划之后,是行动和计划在财务上的体现。

 

Android程序空转会对cpu影响大吗 什么叫程序空转,Android程序空转会对cpu影响大吗 什么叫程序空转_信号量_04,第4张

 

Android程序空转会对cpu影响大吗 什么叫程序空转,Android程序空转会对cpu影响大吗 什么叫程序空转_等待队列_05,第5张

Android程序空转会对cpu影响大吗 什么叫程序空转,Android程序空转会对cpu影响大吗 什么叫程序空转_信号量_06,第6张

Android程序空转会对cpu影响大吗 什么叫程序空转,Android程序空转会对cpu影响大吗 什么叫程序空转_信号量_07,第7张

Android程序空转会对cpu影响大吗 什么叫程序空转,Android程序空转会对cpu影响大吗 什么叫程序空转_等待队列_08,第8张

Android程序空转会对cpu影响大吗 什么叫程序空转,Android程序空转会对cpu影响大吗 什么叫程序空转_脚本语言_09,第9张

Android程序空转会对cpu影响大吗 什么叫程序空转,Android程序空转会对cpu影响大吗 什么叫程序空转_等待队列_10,第10张

https://wenku.baidu.com/view/2973e793f524ccbff12184a4.html?from=search

===========================

mysql:

http://www.runoob.com/mysql/mysql-data-types.html

操作系统linux, 语言java,数据库mysql,三大框架ssm, spring.aop, spring.web, mybatis

 

=======================


https://www.xamrdz.com/mobile/44x1960656.html

相关文章: