- Linux内核进程管理子系统有什么第六回 —— 进程主结构详解(2)
接前一篇文章:Linux内核进程管理子系统有什么第五回——进程主结构详解(1)本文内容参考:Linux内核进程管理专题报告_linuxrseq-CSDN博客《趣谈Linux操作系统核心原理篇:第三部分进程管理》——刘超《图解Linux内核基于6.x》——姜亚华机械工业出版社特此致谢!进程管理核心结构——task_struct上一回讲了task_struct结构的“姊妹结构”——PCB,本回正式认识
- 深入理解Linux内核-进程
苦茶子12138
Linux上岸手册linux服务器运维
1、进程的静态特性进程:程序执行时的一个实例进程描述符(task_struct):进程的基本信息(thread_info)、指向内存区描述符的指针(mm_struct)、进程相关的tty(tty_struct)、当前目录(fs_struct)、指向文件描述符的指针(files_struct)、所接收的信号(signal_struct)进程状态:1、可运行状态(TASK_RUNNING):正在运行或
- Linux信号保存与处理机制详解
什么半岛铁盒
linux
Linux信号的保存与处理涉及多个关键机制,以下是详细的总结:1.信号的保存进程描述符(task_struct):每个进程的PCB中包含信号相关信息。pending信号集:记录已到达但未处理的信号(未决信号)。每个信号对应一个位,置1表示信号待处理。blocked信号屏蔽字:标识被阻塞(屏蔽)的信号。被屏蔽的信号将暂不递送,直到解除屏蔽。实时信号队列:实时信号(SIGRTMIN~SIGRTMAX)
- Linux 进程调度:原理--分析--常见命令
JoysonQin
嵌入式linux嵌入式应用
Linux进程调度:原理--分析--常见命令Linux进程调度原理文章网址:http://blog.163.com/zhu_xude/blog/static/11676921620095253145900/优先权只是调度算法考虑的一个方面进程调度依据调度程序运行时,要在所有可运行状态的进程中选择最值得运行的进程投入运行。选择进程的依据是什么呢?在每个进程的task_struct结构中有以下四项
- 【Linux:进程程序替换】
Dongliner~
linuxlinux运维服务器
进程程序替换的原理:替换正在运行的程序,让正在进行的程序一个程序运行起来时,会有一个task_struct结构体,里面含有一个内存指针,而内存指针指向了虚拟地址空间,通过页表与物理内存进行映射。替换程序替换所做的工作:1.替换当前进程的代码段和数据段为新程序,刷新堆栈2.进程替换完毕后,该进程的进程pid是没有变化的(结合公司岗位调度理解,你的岗位替换了,但是公司没换)进程替换的函数:exec函数
- 深入了解Linux内核:task_struct结构详解
深度Linux
Linux内存管理C/C++Linux内核数据结构
Linux操作系统的广袤世界里,进程管理宛如一座大厦的基石,支撑着整个系统的稳定运行与高效运转。而task_struct结构体,无疑是进程管理这座大厦的核心支柱,它承载着进程的关键信息,贯穿于进程从诞生到消亡的整个生命周期,在进程创建、调度、通信以及资源管理等各个关键环节都发挥着不可替代的作用。深入探究task_struct结构体,就如同开启一场探秘Linux内核底层运作奥秘的奇妙之旅,能够帮助我
- Linux信号:一场内核与用户空间的暗战
芯作者
DD:日记linux
在Linux系统的黑暗森林中,每个进程都是小心翼翼的猎人。当一束神秘的信号光划过天际,内核瞬间变身信号调度大师,在进程的生死簿上书写着命运。这场跨越用户空间与内核态的博弈,远比表面看到的更加惊心动魄。一、信号诞生的量子纠缠当Ctrl+C的闪电划破终端的宁静,内核的tty驱动层率先捕捉到这个量子扰动。键盘中断处理程序像精密的外科手术刀,准确地将SIGINT信号注入当前前台进程的task_struct
- 咱们一起学 LINUX(六):揭秘内核文件表的实现机制
lilye66
咱们一起学习LINUXlinux运维服务器
咱们一起学LINUX(六):揭秘内核文件表的实现机制在Linux知识的探索旅程中,我们不断深入挖掘其内部的奥秘。今天,我们将聚焦于内核文件表的实现,这是Linux文件管理体系中极为关键的一部分。我希望通过分享这些知识,能与大家共同进步,进一步提升对Linux系统的理解深度。一、内核文件表的核心结构剖析在Linux内核中,每个进程都有一个对应的task_struct结构体,而进程的文件表就保存在ta
- C++常见知识掌握
nfgo
c++开发语言
1.Linux软件开发、调试与维护内核与系统结构Linux内核是操作系统的核心,负责管理硬件资源,提供系统服务,它是系统软件与硬件之间的桥梁。主要组成部分包括:进程管理:内核通过调度器分配CPU时间给各个进程,实现进程的创建、调度、终止等操作。使用进程描述符(task_struct)来存储进程信息,包括状态(就绪、运行、阻塞等)、优先级、内存映射等。内存管理:包括物理内存和虚拟内存管理。通过页表映
- 多处理器SMP系统结构--SMP结构中的进程调度
New_Worms
linux
多核进程调度中,相关task_struct结构中代表进程与CPU之间关系的变量structtask_struct{...inthas_cpu,processor;unsignedlongcpus_allowed;...}has_cpu:表示当前进程在CPU上正在运行;processor:表示在哪个CPU上运行;cpus_allowed:一个位图变量,其中一位,置1,表示允许这个进程接受调度在置1编
- 秒懂:进程(概念初晓)
是布吉岛
秒懂操作系统linux运维服务器
1.概念:课本概念:程序的一个执行实例,正在执行的程序等内核观点:担当分配系统资源(CPU时间,内存)的实体。作者理解:一个加载到内存中的程序。进程不止包括程序加载到内存的数据,还包括该进程的属性,它的这个属性,操作系统用一个结构体PCB来封装,在linux中进程的属性统一叫做task_struct。所以进程=PCB(属性)+内容程序是存储在外存中,进程PCB是在内存中的,程序是“静”的从程序到进
- linux--进程
M.lee—CN
linux运维服务器
一、进程管理内核把进程存放在叫做任务队列的双向循环列表中。链表中的每一项都是类型称为task_struct,称为进程描述符。1.1分配进程描述符Linux通过slab分配器分配task_struct结构,这样能达到对象复用和缓存着色(cachecoloring)的目的。在进程的内核栈的栈低或栈顶(尾端),创建一个新的结构体struct_thread_ifo。此结构体中有一个指向进程描述符的指针。内
- Linux---线程
HaiFan.
LinuxLinux
线程概念在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”一切进程至少都有一个执行线程线程在进程内部运行,本质是在进程地址空间内运行在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理分配给每个执行流,就形成了线程执行流在进程中,有一个task_struct的结构体
- Linux系统学习-初识进程
缘起云端,逆光而上
笔记linux运维服务器
Linux系统学习-初识进程文章目录Linux系统学习-初识进程1.认识冯诺依曼体系结构2操作系统(OperatingSystem)什么是OS?为什么要有OS?OS的作用OS的定位计算机层状结构3进程什么是进程PCB什么是PCB?`task_struct`的内容标识符上下文数据通过系统调用创建进程-fork初识创建子进程`fork()`函数的返回值创建多个子进程4进程状态状态僵尸进程(zombie
- 【Linux】Linux 中进程控制块 PCB —— task_struct 结构体结构
炫酷的伊莉娜
Linux学习(转载)linux进程控制块PCB转载task_struct
在Linux中每一个进程都由task_struct数据结构来定义。task_struct就是我们通常所说的PCB。它是对进程控制的唯一手段,也是最有效的手段。当我们调用fork()时,系统会为我们产生一个task_struct结构。然后从父进程那里继承一些数据,并把新的进程插入到进程树中,以待进行进程管理。因此了解task_struct的结构对于我们理解任务调度(在Linux中任务和进程是同一概念
- linux进程和进程优先级
高高__
linuxc++
进程1.概念担当分配系统资源(cpu时间,内存)的实体。2.描述进程-PCB进程的所有信息都存放在一个进程控制块的数据结构中,可以理解为进程属性的集合,Linux下PCB为:test_struct。task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。task_struct内容分类标示符:描述本进程的唯一标示符,用来区别其他进程。状态:任务状态,退
- Linux线程/同步与互斥/锁/悲观锁/乐观锁/读写锁/简单线程池/生产者消费者模型/单例模式饿汉方式懒汉方式
老汉忒cpp
linux运维服务器
线程概念线程是进程内的一个执行分支,线程的执行粒度比进程要细。在Linux眼中,看到的PCB比传统的进程更加轻量化,所以也叫做轻量化进程。现在我们对于进程的定义就是一堆执行流+进程地址空间+页表这些+在物理内存中的代码和数据。所以线程就是多创建出来的task_struct结构体。或者我们直接把第一个叫做主线程,其他的都叫做新线程。不同的操作系统对于线程的概念是一样的,但是它们的实现方案可能不一样。
- Linux -3 进程概念(二)
翻斗花园牛图图-
linux
1.进程状态1.1进程排队的了解---队列进程不是一直在运行的,即便进程放在了CPU上,也不是一直会运行的它可能在等待某种软硬件资源,比如:当你的代码包含scanf函数,执行到此语句时进程在等键盘输入时间片:一个进程占用CPU资源(不管有没有跑完)固定时间(例:1ms)后会下来所谓的进程排队,一定在等待某种"资源"进程=task_struct+可执行程序注意:排队的是task_struct一个ta
- 浅谈Linux下进程的几种状态
weixin_42216463
linux
linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。Linux进程状态:R(TASK_RUNNING),可执行状态。只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CPU的可执行队列中(一个进程最多只能出现在一个CPU的可执行队列中)。进程
- 浅析Linux进程管理:current宏实现
Aspiresky
#进程管理linux运维服务器
本文基于Linux5.10.186版本内核源码进行分析。文章目录current概述早期内核版本实现最新版本内核实现x86体系下的current宏实现ARMv8体系下的current实现相关参考current概述Linux内核在运行时经常需要访问当前运行进程的task_struct指针,于是,系统提供了current宏来查找当前运行进程的task_struct指针。由于体系结构的不同,加上内核版本在
- 【Linux】第三十四站:共享内存
青色_忘川
【Linux】linux运维服务器c++gitc语言
文章目录一、直接原理二、代码1.系统调用接口2.创建共享内存3.获取共享内存4.将共享内存挂接到虚拟进程地址空间中5.去掉关联6.释放共享内存7.两个进程一起共享8.通信三、共享内存的特性四、共享内存的属性五、同步一、直接原理我们知道进程间通信的本质是:先让不同的进程,看到同一份资源如下图示,这些我们都还是知道的,即有两个进程,分别有其对应的task_struct和对应的进程地址空间,通过页表可以
- Linux进程管理
可爱的小小小狼
Linuxlinuxwindows运维
进程可执行文件交给操作系统就成为进程了。内核调度的对象是线程,Linux不区分线程和进程,线程只不过是特殊的进程。进程是执行期的代码和相关资源的总和。每个进程都有:代码段,数据段,堆,栈。每个进程都有自己的堆和栈,task_struct包含指向堆和栈的指针,当进行进程切换时,就切换堆栈。每个进程都共享相同的内核空间。调用fork()的进程为父进程,新产生的进程称为子进程,在该调用结束时,再返回到这
- 进程的基础认识
要努力学习ψ(`∇´)ψ
服务器linux运维
目录一、进程的概念二、进程的管理三、运行队列一、进程的概念进程是指可执行程序+内核数据结构(内核为了管理进程而创建的数据结构)。二、进程的管理进程是靠PCB(processcontrolblock[进程控制块])管理起来的,在linux下PCB叫task_struct当一个可执行程序从磁盘加载进内存,只有这个程序的代码和数据,操作系统会创建出一个PCB对象来管理这些加载进来的程序,在PCB中有这个
- 【Linux系统编程】程序地址空间
青春:一叶知秋
linux运维服务器
进程地址空间进程地址空间是指每个进程在计算机内存中所占用的地址空间。地址空间是指能被访问的内存地址范围,它由若干个连续的内存块组成。每个进程都有自己的地址空间,这意味着每个进程都有自己的内存地址范围,不会与其他进程冲突。进程地址空间通常被划分为几个部分,包括代码段、数据段、堆和栈等,它是一种特定的数据结构,进程task_struct内部指向其结构,次结构在系统中叫做mm_struct。具体的结构分
- 进程(一) 进程概念
NuyoahC
Linuxlinux服务器c++华为云
文章目录什么是进程呢?描述进程-PCBtask_struct-PCB的一种task_struct内容分类查看进程通过系统目录查看通过ps命令查看通过系统调用获取进程的PID和PPID通过系统调用创建进程-fork()函数fork()函数fork函数做了什么?fork之后,父子进程谁先运行fork函数的返回值:为什么fork会有两个返回值?fork的两个返回值什么是进程呢?运行起来的程序吗?课本概念
- Linux中进程有哪几种状态
Kant101
linux
Linux中进程有哪几种状态1.R(TASK_RUNNING),可执行状态。只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CPU的可执行队列中(一个进程最多只能出现在一个CPU的可执行队列中)。进程调度器的任务就是从各个CPU的可执行队列中分别选择一个进程在该CPU上运行。很多操作系统教科书将正在CPU上
- 2.【Linux】(进程的状态||深入理解fork||底层剖析||task_struct||进程优先级||并行和并发||详解环境变量)
MLGDOU
Linuxlinux开发语言c语言c++
一.进程1.进程调度Linux把所有进程通过双向链表的方式连接起来组成任务队列,操作系统和cpu通过选择一个task_struct执行其代码来调度进程。2.进程的状态1.运行态:pcb结构体在运行或在运行队列中排队。2.阻塞态:等待非cpu资源就绪(硬盘,网卡等资源)3.挂起态:一个进程对应的代码和数据被操作系统因为资源不足而导致操作系统将该进程的代码和数据临时地置换到磁盘当中,进程的pcb还在内
- 进程之理解进程的概念
Achlorine
linux进程操作系统c++
你必须非常努力,才能看起来毫不费力。文章目录进程的基本概念描述进程——pcbtest_structpcb的一种task_struct内容分类组织进程查看进程通过系统调用获取进程标示符总结进程的基本概念课本概念:进程是一个执行实列,正在执行的程序等。内核观点:担当分配系统资源(CPU时间,内存)的实体上面两个观念呢我们同学们可能会比较难以理解想着那到底什么是进程呢?这里我们要指出首先一个正在被执行的
- 银河麒麟4.0.2 内核(4.11.0)中获取进程名
云帆清扬
linux内核
在内核中通过current宏可以获取当前进程的task_struct,通过该结构体中的成员变量:charcomm[TASK_COMM_LEN];可以方便的获取进程名,具体方法为调用函数:char*get_task_comm(char*to,structtask_struct*tsk);请注意:直接访问成员变量获取进程名会有乱码,需要用函数task_lock锁定task_struct后才能成功获取,
- Linux线程的设计
摆烂小青菜
青菜的Linux专栏linux
文章目录一.理解Linux线程的本质进程地址空间是进程访问系统资源的窗口Linux系统中,线程是比进程更轻量级的执行流二.Linux线程独立运行的原理三.基础线程控制一.理解Linux线程的本质进程地址空间是进程访问系统资源的窗口Linux系统中,线程是比进程更轻量级的执行流线程是进程内部的执行流,同一个进程中,每个线程有独立的task_struct内核数据结构对象,但是进程地址空间是共享的,因此
- 继之前的线程循环加到窗口中运行
3213213333332132
javathreadJFrameJPanel
之前写了有关java线程的循环执行和结束,因为想制作成exe文件,想把执行的效果加到窗口上,所以就结合了JFrame和JPanel写了这个程序,这里直接贴出代码,在窗口上运行的效果下面有附图。
package thread;
import java.awt.Graphics;
import java.text.SimpleDateFormat;
import java.util
- linux 常用命令
BlueSkator
linux命令
1.grep
相信这个命令可以说是大家最常用的命令之一了。尤其是查询生产环境的日志,这个命令绝对是必不可少的。
但之前总是习惯于使用 (grep -n 关键字 文件名 )查出关键字以及该关键字所在的行数,然后再用 (sed -n '100,200p' 文件名),去查出该关键字之后的日志内容。
但其实还有更简便的办法,就是用(grep -B n、-A n、-C n 关键
- php heredoc原文档和nowdoc语法
dcj3sjt126com
PHPheredocnowdoc
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Current To-Do List</title>
</head>
<body>
<?
- overflow的属性
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- 《我所了解的Java》——总体目录
g21121
java
准备用一年左右时间写一个系列的文章《我所了解的Java》,目录及内容会不断完善及调整。
在编写相关内容时难免出现笔误、代码无法执行、名词理解错误等,请大家及时指出,我会第一时间更正。
&n
- [简单]docx4j常用方法小结
53873039oycg
docx
本代码基于docx4j-3.2.0,在office word 2007上测试通过。代码如下:
import java.io.File;
import java.io.FileInputStream;
import ja
- Spring配置学习
云端月影
spring配置
首先来看一个标准的Spring配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi=&q
- Java新手入门的30个基本概念三
aijuans
java新手java 入门
17.Java中的每一个类都是从Object类扩展而来的。 18.object类中的equal和toString方法。 equal用于测试一个对象是否同另一个对象相等。 toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.(toString 方法是一个很重要的方法) 19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。
- 《2008 IBM Rational 软件开发高峰论坛会议》小记
antonyup_2006
软件测试敏捷开发项目管理IBM活动
我一直想写些总结,用于交流和备忘,然都没提笔,今以一篇参加活动的感受小记开个头,呵呵!
其实参加《2008 IBM Rational 软件开发高峰论坛会议》是9月4号,那天刚好调休.但接着项目颇为忙,所以今天在中秋佳节的假期里整理了下.
参加这次活动是一个朋友给的一个邀请书,才知道有这样的一个活动,虽然现在项目暂时没用到IBM的解决方案,但觉的参与这样一个活动可以拓宽下视野和相关知识.
- PL/SQL的过程编程,异常,声明变量,PL/SQL块
百合不是茶
PL/SQL的过程编程异常PL/SQL块声明变量
PL/SQL;
过程;
符号;
变量;
PL/SQL块;
输出;
异常;
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言PL/SQL 是对 SQL 的扩展,sql的执行时每次都要写操作
- Mockito(三)--完整功能介绍
bijian1013
持续集成mockito单元测试
mockito官网:http://code.google.com/p/mockito/,打开documentation可以看到官方最新的文档资料。
一.使用mockito验证行为
//首先要import Mockito
import static org.mockito.Mockito.*;
//mo
- 精通Oracle10编程SQL(8)使用复合数据类型
bijian1013
oracle数据库plsql
/*
*使用复合数据类型
*/
--PL/SQL记录
--定义PL/SQL记录
--自定义PL/SQL记录
DECLARE
TYPE emp_record_type IS RECORD(
name emp.ename%TYPE,
salary emp.sal%TYPE,
dno emp.deptno%TYPE
);
emp_
- 【Linux常用命令一】grep命令
bit1129
Linux常用命令
grep命令格式
grep [option] pattern [file-list]
grep命令用于在指定的文件(一个或者多个,file-list)中查找包含模式串(pattern)的行,[option]用于控制grep命令的查找方式。
pattern可以是普通字符串,也可以是正则表达式,当查找的字符串包含正则表达式字符或者特
- mybatis3入门学习笔记
白糖_
sqlibatisqqjdbc配置管理
MyBatis 的前身就是iBatis,是一个数据持久层(ORM)框架。 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis对JDBC进行了一次很浅的封装。
以前也学过iBatis,因为MyBatis是iBatis的升级版本,最初以为改动应该不大,实际结果是MyBatis对配置文件进行了一些大的改动,使整个框架更加方便人性化。
- Linux 命令神器:lsof 入门
ronin47
lsof
lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。
有趣的是,lsof也是有着最多
- java实现两个大数相加,可能存在溢出。
bylijinnan
java实现
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BigIntegerAddition {
/**
* 题目:java实现两个大数相加,可能存在溢出。
* 如123456789 + 987654321
- Kettle学习资料分享,附大神用Kettle的一套流程完成对整个数据库迁移方法
Kai_Ge
Kettle
Kettle学习资料分享
Kettle 3.2 使用说明书
目录
概述..........................................................................................................................................7
1.Kettle 资源库管
- [货币与金融]钢之炼金术士
comsci
金融
自古以来,都有一些人在从事炼金术的工作.........但是很少有成功的
那么随着人类在理论物理和工程物理上面取得的一些突破性进展......
炼金术这个古老
- Toast原来也可以多样化
dai_lm
androidtoast
Style 1: 默认
Toast def = Toast.makeText(this, "default", Toast.LENGTH_SHORT);
def.show();
Style 2: 顶部显示
Toast top = Toast.makeText(this, "top", Toast.LENGTH_SHORT);
t
- java数据计算的几种解决方法3
datamachine
javahadoopibatisr-languer
4、iBatis
简单敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算脚本和JAVA代码的解耦,只用20%的代价就实现了hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。
复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据
- 向网页中插入透明Flash的方法和技巧
dcj3sjt126com
htmlWebFlash
将
Flash 作品插入网页的时候,我们有时候会需要将它设为透明,有时候我们需要在Flash的背面插入一些漂亮的图片,搭配出漂亮的效果……下面我们介绍一些将Flash插入网页中的一些透明的设置技巧。
一、Swf透明、无坐标控制 首先教大家最简单的插入Flash的代码,透明,无坐标控制: 注意wmode="transparent"是控制Flash是否透明
- ios UICollectionView的使用
dcj3sjt126com
UICollectionView的使用有两种方法,一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView;另外一种是作为一个视图放在普通的UIViewController里面。
个人更喜欢第二种。下面采用第二种方式简单介绍一下UICollectionView的使用。
1.UIViewController实现委托,代码如
- Eos平台java公共逻辑
蕃薯耀
Eos平台java公共逻辑Eos平台java公共逻辑
Eos平台java公共逻辑
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:20:4
- SpringMVC4零配置--Web上下文配置【MvcConfig】
hanqunfeng
springmvc4
与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明。
applicationContext-MvcConfig.xml
<!-- 启用注解,并定义组件查找规则 ,mvc层只负责扫描@Controller -->
<
- 解决ie和其他浏览器poi下载excel文件名乱码
jackyrong
Excel
使用poi,做传统的excel导出,然后想在浏览器中,让用户选择另存为,保存用户下载的xls文件,这个时候,可能的是在ie下出现乱码(ie,9,10,11),但在firefox,chrome下没乱码,
因此必须综合判断,编写一个工具类:
/**
*
* @Title: pro
- 挥洒泪水的青春
lampcy
编程生活程序员
2015年2月28日,我辞职了,离开了相处一年的触控,转过身--挥洒掉泪水,毅然来到了兄弟连,背负着许多的不解、质疑——”你一个零基础、脑子又不聪明的人,还敢跨行业,选择Unity3D?“,”真是不自量力••••••“,”真是初生牛犊不怕虎•••••“,••••••我只是淡淡一笑,拎着行李----坐上了通向挥洒泪水的青春之地——兄弟连!
这就是我青春的分割线,不后悔,只会去用泪水浇灌——已经来到
- 稳增长之中国股市两点意见-----严控做空,建立涨跌停版停牌重组机制
nannan408
对于股市,我们国家的监管还是有点拼的,但始终拼不过飞流直下的恐慌,为什么呢?
笔者首先支持股市的监管。对于股市越管越荡的现象,笔者认为首先是做空力量超过了股市自身的升力,并且对于跌停停牌重组的快速反应还没建立好,上市公司对于股价下跌没有很好的利好支撑。
我们来看美国和香港是怎么应对股灾的。美国是靠禁止重要股票做空,在
- 动态设置iframe高度(iframe高度自适应)
Rainbow702
JavaScriptiframecontentDocument高度自适应局部刷新
如果需要对画面中的部分区域作局部刷新,大家可能都会想到使用ajax。
但有些情况下,须使用在页面中嵌入一个iframe来作局部刷新。
对于使用iframe的情况,发现有一个问题,就是iframe中的页面的高度可能会很高,但是外面页面并不会被iframe内部页面给撑开,如下面的结构:
<div id="content">
<div id=&quo
- 用Rapael做图表
tntxia
rap
function drawReport(paper,attr,data){
var width = attr.width;
var height = attr.height;
var max = 0;
&nbs
- HTML5 bootstrap2网页兼容(支持IE10以下)
xiaoluode
html5bootstrap
<!DOCTYPE html>
<html>
<head lang="zh-CN">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">