句柄

js定时器

久未见 提交于 2020-02-01 11:45:29
定时器分两种分别是setTimeout和setInterval。 两者的用法分别是setTimeout(funhander,time);setInterval(fnhander,time);设置的相应计时器需要用clearTimeout(对象)和clearInterval(对象)清掉。有以下几点需要注意: 第一:setTimeout(funhander,time)的作用是在过time毫秒后,执行 一次 句柄funhander指向的方法。而setInterval(funhander,time)的作用是,每隔time毫秒后,就执行一次句柄funhander指向的方法。一直到我清掉计时器停止。 第二:巨大多数的计时器使用都是为了执行渐变、渐隐渐现、位置渐变等效果,所以funhander指向的方法会被多次执行。因此如果我们使用setTimeout做定时器,一般要把计时器的设置写在funhander指向的方法里,这样就可以循环调用,多次执行funhander,一直到我清掉这个定时器。而在使用setInterval设置定时器的时候,一般要放在funhander指向行数的外面。 第三:funhander指向的方法里处理了渐变中的一步,又会被重复执行,所以在此方法中大多包含有判断语句IF。用来控制渐变到一定程度的时候进行相应处理。比如清掉定时器或者进行循环操作。 第四:funhander为句柄

Matlab学习笔记(四)——编程基础

旧街凉风 提交于 2020-01-31 10:21:49
4.1 M文件 所谓M文件就是将处理问题的各种命令融合到一个文件中,该文件以.m为扩展名,然后由MATLAB系统进行编译,得出相应的运行结果,具有相当大的可开发性和扩展性。M文件有脚本文件的函数文件两种。脚本文件不需要输入参数也不输出参数,按照文件中指定的顺序执行命令序列。而函数文件则接受其他数据作为输入参数,并且可以返回数据 4.1.1 M文件编辑器 函数定义行 用于定义函数名称,定义输入输出变量的数量、顺序。脚本式M文件没有此行 完整函数定义为 function[out1,out2,out3…]=funName(in1,in2,in3…) 其中输入变量用圆括号,变量间用英文逗号分隔。输出变量用方括号,无输出可用空括号或无括号和等号 无输出的函数定义行可为 function funName (in1,in2,in3) H1行 紧跟着函数定义行,因为它是Help文件的第一行,所以叫做H1行,用%开始 MATLAB可以通过命令把M文件上的帮助信息显示在命令窗口。因此建议写M文件时建立帮助文本 H1行是函数功能的概括性描述,在命令窗口提示符下输入命令可以显示H1行文本 help filename或者look for filename Help文本 这是为帮助建立的文本,可以是连续多行的注释文本。只能在命令窗口观看 帮助文本遇到之后的第一个非注释行结束,函数中的其他注释行不被显示 注释

JS-常用事件集合

余生颓废 提交于 2020-01-30 14:31:47
常见的事件如下: 事件 事件句柄 用法 blur onblur 元素失去焦点。 focus onfocus 元素获得焦点。 change onchange 域的内容被改变。 click onclick 当用户点击某个对象时调用的事件句柄。 dblclick ondblclick 当用户双击某个对象时调用的事件句柄。 keydown onkeydown 某个键盘按键被按下。 keyup onkeyup 某个键盘按键被松开。 load onload 一张页面或一幅图像完成加载。 mousedown onmousedown 鼠标按钮被按下。 mousemove onmousemove 鼠标被移动。 mouseout onmouseout 鼠标从某元素移开。 mouseover onmouseover 鼠标移到某元素之上。 mouseup onmouseup 鼠标按键被松开。 reset onreset 重置按钮被点击。 submit onsubmit 确认按钮被点击。 select onselect 文本被选中。 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="Generator" content="EditPlus®"> 6 <meta name="Author"

RegCreateKey

瘦欲@ 提交于 2020-01-30 03:00:41
1 说明 创建或打开注册表项。默认为创建,当注册表中有此项时。为打开。 PS:可以简单理解为一个“粘合”,即,把参一(注册表项)与参二(代表注册表子项的字符串常量)粘合起来, 返回给参三(新的注册表句柄) 2 函数声明 VB声明 VC声明 Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" ( ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long ) As Long LONG WINAPI RegCreateKey( _In_ HKEY hKey, _In_opt_ LPCTSTR lpSubKey, _Out_ PHKEY phkResult ); 3 返回值 [Long] 0(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码. 4 参数表 VB 版参数类型及说明: hKey Long,要打开项的句柄,或者一个标准项名 lpSubKey String,欲创建的新子项。可同时创建多个项,只需用 反斜杠 将它们分隔开即可。例如 level1\level2\ newkey phkResult Long,指定一个 变量 ,用于装载新子项的句柄 VC 版参数类型说明: hKey 指向当前打开表项的句柄

标准输入输出重定向

£可爱£侵袭症+ 提交于 2020-01-30 00:47:16
程序会在运行中输出日志,并是通过java的日志类进行输出的。而如果关掉SSH运行程序,就会丢失这些信息。直观的解决办法是将输出到控制台的日志重定向到文件中,于是我将命令改为:sh auto.sh > console.txt &。不过事实并没像我想的那样,console.txt虽然被创建了,而日志并没有写在其中。后来请教Robert Chen,他让我用sh auto.sh >console.txt 2>&1 & 命令试一下,我输入了这个隐晦的命令之后,原本输出到控制台的日志内容终于被重定向到console.txt了。 下面来详细分析一下这条命令: sh auto.sh 运行shell脚本 >console.txt 将标准输出重定向到console.txt文件中 其实操作系统有三个常用的流: 0:标准输入流 stdin 1:标准输出流 stdout 2:标准错误流 stderr 一般当我们用 > console.txt,实际是 1>console.txt的省略用法;< console.txt ,实际是 0 < console.txt的省略用法。 java的日志类默认是输出到system.err中,所以要想将日志内容重定向到console.txt,需要将stderr重定向到console.txt. 将stderr重定向到console.txt的命令是 2 < console.txt。

epoll ET模式读和写

梦想的初衷 提交于 2020-01-28 05:33:13
在c++网络编程中几乎都会使用epoll模式,epoll提供了两种触发模式ET(边缘触发)和LT(水平触发 默认的触发模式)。边缘触发就是当有可读事件之后如何一次没有读取完所有数据那么epoll不会在触发可读事件,只有再次从不可读变为可读才会再次触发可读,可写也是同样的道理。水平触发就是只要可读就会不断触发可读事件,只要可写就会不断触发可写事件。所以一般大并发服务器都会使用ET模式,这样比LT模式更高效(我在实际项目中验证过)。那在ET模式我们不可能对一个句柄进行无限次的读取,因为一个句柄读取过多可能导致其他句柄饿死,一般会在一次循环中读取10次或者20次等,那如果这个时候句柄依旧可读应该如何处理,因为本次不读完那么epoll的可读事件将不会在触发,其实可以简单的再次EPOLLMOD,这样在下次循环的时候将会再次触发可读事件。发送数据的处理方式是直接调用send函数发送,如果返回错误就将数据放入等待发送队列,下次触发可写事件在发送数据。这样的处理方式比较简单可直观,不用在句柄依旧可读和可写的情况下自己保存这些句柄。那通过EPOLLMOD是否会降低epoll的效率了,答案是不会,因为这种操作不会频繁的触发。我自己项目中一个进程中包含网关,数据库和逻辑处理也就是说只有一个进程的游戏服务器单服可以负载8000+的人,所以如果独立进程的网关这种处理1万并发应该是毫无压力的。 ps

MFC-Windows编程

只愿长相守 提交于 2020-01-27 23:47:57
MFC-Windows编程模型勿忘知识点 1.句柄(HANDLE) //系统在创建资源(窗口,光标…)的时候会为他们分配内存,并且返回标识这些资源的标识号,那就是句柄,和人的名字相差不大。 2.消息: 窗口消息被操作系统捕获 操作系统把消息放入消息队列(队列是先进先出)中 应用程序从消息队列获取消息 应用程序把消息分发给操作系统 E.操作系统调用回调函数(窗口过程) 3.WinMain函数 //Windows程序入口函数,和main函数作用一致,WinMain函数结束,Windows应用程序同样也结束。 4.Windwos编程的大致模型: 导入#include<windows.h>头文件 WinMain函数的定义 创建一个windows窗口 进行消息循环 编写窗口过程函数 图像 代码 # include <windows.h> //6.处理消息(窗口过程) LRESULT CALLBACK returnwin ( HWND hwnd , //消息产生的窗口句柄 UINT uMsg , //消息名称 WPARAM wParam , //键盘的附加消息 LPARAM lParam ) //鼠标的附加消息 { switch ( uMsg ) { case WM_CLOSE : DestroyWindow ( hwnd ) ; break ; //DestroyWindow会发送WM

深入理解JVM:内存区域

a 夏天 提交于 2020-01-27 22:08:42
一、运行时数据区域 Java虚拟机在运行时java程序的时候,会把它所管理的内存划分成若干个不同的数据区域。其中jdk1.8前后版本有差别。 jdk1.8之前: jdk1.8之后: 内存可分为:程序计数器、栈、堆、方法区和直接内存。 整个内存数据区域是属于当前进程的,当前进程拥有所有的资源和数据。而直接内存是所有进程共享的。 其中栈和程序计数器是线程私有的,也就是每一个线程拥有自己独立的区域。互相不干扰。 二、程序计数器 我们的java代码在程序执行之前就被编译成字节码。而这个程序计数器不是我们计算机组成原理的程序计数器(存放的计算机指令地址),而我们的jvm的pc是字节码解释器的指示器。存放的是字节码的地址。如果执行的是java方法,这里存储的就是正在执行的字节码的地址,如果执行的是本地方法存储的就是undefined。 字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来完成。 在多线程的环境下,pc还能保证恢复到原来线程的位置。 注意:程序计数器是唯一一个不会出现 OutOfMemoryError 的内存区域,它的生命周期随着线程的创建而创建,随着线程的结束而死亡。 三、Java虚拟机栈 描述的是 Java 方法执行的内存模型,每次方法调用的数据都是通过栈传递的。 栈帧:操作数栈 动态链接

Too many open files

百般思念 提交于 2020-01-27 04:54:02
打开的文件过多,一般来说是由于应用程序对资源使用不当造成,比如没有及时关闭Socket或数据库连接等。但也可能应用确实需要打开比较多的文件句柄,而系统本身的设置限制了这一数量。 异常 1 java.net.SocketException: Too many open files at java.net.PlainSocketImpl.accept(Compiled Code) at java.net.ServerSocket.implAccept(Compiled Code) at java.net.ServerSocket.accept(Compiled Code) at weblogic.t3.srvr.ListenThread.run(Compiled Code) 异常 2 java.io.IOException:打开的文件过多 at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.(UNIXProcess.java:54) at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.(UNIXProcess.java:54) at java.lang.Runtime

【一起学习输入法】华宇拼音输入法开源版本解析(5)

霸气de小男生 提交于 2020-01-23 23:15:10
【一起学习输入法】华宇拼音输入法开源版本解析(5) 原创:good02xaut(CSDN) IME输入法系统框架 输入法在DOS时代就有了,首先出现的是英文输入法,其次根据市场需要推出中文输入法。微软推出windows操作系统后,输入法先是以IME架构形式,现在又推出更新的TSF技术来支持平板电脑和更高版本的Windows操作系统。 输入法程序也是一个进程,但是我们在任务管理器中却找不到该进程,找到输入法的安装目录会发现一个后缀是.ime的文件,就是一个dll的模块,当一个进程打开输入法要输入汉字的时候其实是加载了这个模块。 默认情况下, IME 提供了一个 IME 窗口(其实是 4 个窗口,下文有详细展开),通过这个窗口,用户可以用键盘输入并且查看和选择想要的字符。应用程序可以使用输入法管理器( IMM )函数和消息来创建并且管理其自己的 IME 窗口(比如 QQ 里是五笔而 Word 里却是拼音),并使用 IME 的转换功能提供一个自定义接口(比如,英文输入法到中文输入法的转换)。 输入法管理器 IMM 只在东亚(中国,日本,韩国)本地化的 Windows 中才可用。在这些系统中,以 SM_DBCSENABLED 消息调用 GetSystemMetrics 函数来确定 IMM 是否可用。注意, Windows 所有本地化版本中都提供了全功能的 IME 支持