Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Java堆栈详解

Java堆栈详解

1. Java中堆栈(stack)和堆(heap)(1)内存分配的策略按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的.静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不 允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求.栈式存储分配也可称为动态存储分配,...
Java 程序里的内存泄漏

Java 程序里的内存泄漏

译序:Java 的内存泄漏,这不是一个新话题。Jim Patrick 的这篇文章早在 2001 年就写出来了。但这并不意味着 Java 的内存泄漏是一个过时了的甚至不重要的话题。相反,Java 的内存泄漏应当是每一个关心程序健壮性、稳定性和高性能的程序员所必须了解的知识。本文将揭示什么时候需要关注内存泄漏以及如何进行防止。摘要:Java 程序里也存在内存泄漏?当然。和流行的看法相反,内存管理仍然是 Java 编程时应该考虑的事情。在这篇文章里,你会了解到是...
Linux内核中的信号机制

Linux内核中的信号机制

信号机制是类UNIX系统中的一种重要的进程间通信手段之一。我们经常使用信号来向一个进程发送一个简短的消息。例如:假设我们启动一个进程通过socket读取远程主机发送过来的网络数据包,此时由于网络因素当前主机还没有收到相应的数据,当前进程被设置为可中断等待状态(TASK_INTERRUPTIBLE),此时我们已经失去耐心,想提前结束这个进程,于是可以通过kill命令想这个进程发送KILL信号,内核会唤醒该进程,执行它的信号处理函数,KILL信号的默认处理是退...
通过shell例子来学习循环结构的语法

通过shell例子来学习循环结构的语法

心得: 所谓有用就是学会了一直在使用,不经常用叫没多大用,忘记了就叫没用。反过来想想经常挨领导批的很有可能是领导对你有很大的期望。所以我们学会的东西要经常用到实际中去才是自己的东西。其实学习的最好方法就是先接触实际的东西,用实践来验证理论。写脚本编写要求证,可以一边测试一边写(中间最好有个输出标记看到哪儿错了)。下面的例子在林夕昱老师的视频里看到的,自己为了练习在CentOS的系统下默写下来了,可能是刚学吧,总是写下来执行后得到好多提示(当然了这些提示是错...
使用Go Hijack和jQuery轻松实现异步推送服务

使用Go Hijack和jQuery轻松实现异步推送服务

首先要说明的是,这里实现的异步推送服务采用的是Long Polling方式,并不是Comet。如果想用Comet来实现的话,可以参考这个开源项目:http://cometd.org/。不过其中的服务端实现只有Java版和Python版。如果要用Go来做后端的话需要自己实现Bayeux协议。关于异步推送服务的解决方案的资料有很多,在这里就不在赘述了。当然,当前最先进的两个方案就是Long Polling和Comet。1. 预备知识1.1 Go语言关于Go语言...
C++指向类成员函数的指针

C++指向类成员函数的指针

最近在开发中用到了函数指针,于是想整理了一下有关函数指针的概念。O(∩_∩)O~首先 函数指针是指向一组同类型的函数的指针;而类成员函数我们也可以相似的认为,它是指向同类中同一组类型的成员函数的指针,当然这里的成员函数更准确的讲应该是指非静态的成员函数。前者是直接指向函数地址的,而后者我们从字面上也可以知道 它肯定是跟类和对象有着关系的。C++函数指针实例:typedef int (*p)(int,int);//定义一个接受两个int型且返...
Linux 下视频设备设置的几个参数 v4l video4linux v4l2 ioctl

Linux 下视频设备设置的几个参数 v4l video4linux v4l2 ioctl

用一系列的ioctl发命令控制设备。v4l支持的ioctl命令大概有二十几个,为了尽快的编出一个简单的图象捕捉程序,让我们先来看看几个主要的命令:1. ioctl(fd,VIDIOCGCAP,&cap);该命令主要是为了获取电视卡的功能信息。例如电视卡的名称,类型,channel等。参数cap是一个结构,当ioctl命令返回时,结构的各成员就被赋值了,结构体的定义为:struct video_capability{ char name[32]...
网络编程常用接口的内核实现----sys_listen()

网络编程常用接口的内核实现----sys_listen()

listen()函数仅在TCP服务器端调用,它做两个事情:将套接字转换到LISTEN状态和设置套接上的最大连接队列。listen()对应的内核实现为sys_listen(),下面开始对其实现作具体的分析。一、sys_listen()函数sys_listen()的源码实现及分析如下所示:/**Perform a listen. Basically, we allow the protocol to do anything*necessary for a li...
Linux中listen()系统调用的backlog参数分析

Linux中listen()系统调用的backlog参数分析

这篇文章是对上一篇博客网络编程常用接口的内核实现----sys_listen()的补充(见 http://www.linuxidc.com/Linux/2013-02/79858.htm),上篇文章中我说listen()系统调用的backlog参数既是连接队列的长度,也指定了半连接队列的长度(不能说等于),而不是《Unix网络编程》中讲到的是半连接队列和连接队列之和的上限,也就是说这个说法对Linux不适用。这篇文章中通过具体的代码来说明这个结论,并且会分...
网络编程常用接口的内核实现----sys_bind()

网络编程常用接口的内核实现----sys_bind()

bind()系统调用是给套接字分配一个本地协议地址,对于网际协议,协议地址是32位IPv4地址或128位IPv6地址与16位的TCP或UDP端口号的组合。如果没有通过bind()来指定本地的协议地址,在和远端通信时,内核会随机给套接字分配一个IP地址和端口号。bind()系统调用通常是在网络程序的服务器端调用,而且是必须的。如果TCP服务器不这么做,让内核来选择临时端口号而不是捆绑众所周知的端口,客户端如何发起与服务器的连接?一、sys_bind()bin...
Linux/Unix Shell的find用法笔记

Linux/Unix Shell的find用法笔记

Linux/Unix Shell的find用法笔记参数解释:find用来查询某个目录下的文件几种常用的参数如下-path 后面跟着要查询的路径-prune 表示不再指定目录下查询,如果同时使用-depth,那么-prune命令将会被忽略-name 要查询的文件名,可以使用正则表达式来查询-mtime 查询近n天更改过的文件+表示大于n,-n表示n天以内-另外还有-atime和-ctime用法类似-newer file1 ! -newer file2 表示查...
利用Node.js进行构建本地

利用Node.js进行构建本地

Node.js是一个基于Google Chrome浏览器v8 javascript执行引擎的异步I/O事件驱动的运行平台。直从2009年诞生开始,已经在业界得到了很多的关注,在这里也必要多说,如果你还不清楚的,请移步到Node官网。在这里我们要讲的是用Node.js来构建本地Build。构建本地Build,我们已经有很多选择,如Ant,Maven,Gradle等。为什么我们还需要Node.js?对于我们的开发中会有一些小的基本自动化构建,如文件的监控(Le...
<< 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 >>