- C Sharp委托、事件、多线程
微笑伴你而行
#csharpc语言开发语言
文章目录委托(Delegate)——你的“遥控器”事件(Event)——安全的“通知系统”多线程(Multithreading)——“同时做多件事”委托(Delegate)——你的“遥控器”是什么?想象你有一个万能遥控器,可以控制家里的电视、空调、灯光。委托就是这个“遥控器”,它允许你通过一个东西调用多个不同的方法。为什么需要它?比如你想写一个程序,让用户点击按钮时执行某些操作,但具体操作可能随时
- 简介 AMD zen 系列 cpu zen zen+ zen2 zen3 zen4 特性
Eloudy
CPUZEN
zen系列cpu,几代之间,指令集又什么区别?AMD的Zen系列CPU在不同代之间引入了多种指令集扩展和架构改进。以下是各代之间的主要指令集和功能差异:1.Zen(第一代)指令集:支持x86-64指令集,包括SSE、SSE2、SSE3、SSE4.1、SSE4.2、AVX和AVX2。特点:引入了新的微架构设计,显著提升了多线程性能。支持SMT(SimultaneousMultithreading),
- Windows平台上多线程编程
AI+程序员在路上
QT&C++实战系列windowsc语言c++开发语言
一.多线程概述多线程(multithreading)是一种并发编程的方式,它允许程序同时执行多个任务。1.功能并发执行:多线程技术使得一个程序能够同时运行多个任务,这些任务在逻辑上相互独立,但在执行过程中可能共享某些资源。资源共享:在多线程程序中,多个线程可以访问共享的内存空间,这些共享资源包括变量、数据结构等。同步与互斥:为了保证多线程程序的正确性和效率,需要实现线程之间的同步和互斥,以避免数据
- Python 多线程 vs 多进程:到底该用哪个?
高山仰星
python开发语言
1.引言在Python开发中,多线程(multithreading)和多进程(multiprocessing)是并发编程的两种主要方式。许多开发者在面对计算密集型或I/O密集型任务时,常常不清楚该选择哪种方式。本篇文章将深入解析Python的多线程和多进程,分析其区别、适用场景,并提供代码示例。2.线程与进程的基本概念什么是线程?线程是进程中的最小执行单元,同一进程内的多个线程共享进程的内存空间。
- C++新特性以及应用场景
平凡而伟大(心之所向)
编程语言c++开发语言
C++的新特性可以大致分为以下几类:模板(Templates):提高代码复用性,包括模板函数和模板类。异常处理(ExceptionHandling):提供了一套结构化的错误处理机制。异步编程(ConcurrencyandMultithreading):提供了线程和原子操作等工具。智能指针(SmartPointers):自动管理内存,如std::unique_ptr和std::shared_ptr。
- Lt-8 Multithreading
yanlingyun0210
java
IntendedLearningOutcomesTounderstandtheconceptofconcurrency.Tounderstandthedifferenceofaprocessandathread.TodefineathreadusingtheThreadclassandRunnableinterface.TocontrolthreadswithvariousThreadmethod
- FTP python multiprocessing 多进程下载文档 遇到NoneObject has no attribute ’sendall‘ 报错
wendyw1999
ftp多进程pythonftp多进程
核心问题multiprocessing不等于multithread。下一篇会开始研究multithread。multiprocessing必须用cmd/terminal使用pythonxxx.py运行,无法在idle中运行。并且必须使用if__name==‘main’的方法。针对每一个需要被下载的文档,需要新创建一个ftp链接,并且必须在outputfunction里面建立。不然会出现”NoneO
- C#桌面开发(那些年你总走进误区的技术):异步多线程、异步事务与递归技术
一个代码猎人
ASP.NETCorec#开发语言
1.异步多线程(AsynchronousMultithreading)在C#桌面开发中,异步多线程是提高应用程序响应速度和性能的关键技术之一。以下是几个深入的技术点和示例代码。1.1使用async和await实现异步操作C#的async和await关键字使得编写异步代码变得更加简单。以下是一个示例,演示如何在桌面应用程序中执行异步文件读取操作:usingSystem;usingSystem.IO;
- iOS基础知识整理之多线程技术
无忌不悔
多线程技术多线程(multithreading)是指软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。原理同一时间,CPU只能处理一条线程,只有一条线程在工作。多线程并发执行,其实是CPU快速地在多线程之间调度(切换)。如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象(CPU并不是真正的同时执行多个任务)
- 幻兽帕鲁游戏中走路卡顿并且会出现回弹是什么原因?
Hehash
游戏
可能原因是最近的1.4.0更新后,代码中有一个启动参数的加入,导致CPU占用极高。可以远程连接你的服务器然后执行下面的代码,删除代码中的那个启动参数。#删除可能导致人物回弹的游戏服务器启动参数sudo-uecs-assist-usersed-i's/-useperfthreads-NoAsyncLoadingThread-UseMultithreadForDS//'/home/ecs-assist
- 在多线程编程中使用 `std::future` 和 `std::vector<std::future<void>>`
Drscq
C++CommonSense开发语言C++
Usingstd::futureandstd::vector>inMultithreadedProgramming在多线程编程中使用std::future和std::vector>IntroductionMultithreadinginC++allowsforparallelexecutionofcode.Usingstd::futureandstd::vector>,youcanmanageas
- 如何让爬虫更快
高金01
本文章属于爬虫入门到精通系统教程第十一讲在前面的教程中,我们已经学会了如何抓取一个网页,可是,当我需要抓取的数据足够多的时候,应该如何让我抓取的速度更快呢?最简单的方法就是使用多进程.什么是多线程多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。使用多线程的好处使用
- ROS2学习记录
雨幕丶
ROSc++linux
目录二、通信模型三、自定义消息四、自定义消息示例五、ros代码调试方法六、launch文件写法七、MultiThreadedExecutor调用callback一、创建工作空间1.创建功能包cdsrcros2pkgcreate功能包--build-typeament_cmake--dependenciesrclcpp--node-name可执行程序2.写源文件(cpp文件)3.编辑配置文件主要是C
- Netty源码二:服务端创建NioEventLoopGroup
上海第一shen 深情
#Nettynetty
示例还是拿之前启动源码的示例,来分析NioEventLoopGroup源码NioEventLoopGroup构造函数这里能看到会调到父类的MultiThreadEventLoopGroup的构造方法MultiThreadEventLoopGroup这里我们能看到,如果传入的线程数目为0,那么就会设置2倍的核心的线程数目接着,继续会调用父类的MultithreadEventExecutorGroup
- Runtime.getRuntime().exec()执行阻塞问题解决
andylao62
system
ava中用Runtime.getRuntime().exec()调用外部程序,获取"标准输出流",老是阻塞.在网上找了找,觉得应该是"错误输出流"的问题.果然,为"错误输出流"单开一个线程读取之,"标准输出流"就不再阻塞了.源码如下:/**执行外部程序,并获取标准输出*/publicstaticStringexcuteCmd_multiThread(String[]cmd,Stringencodi
- 使用多线程读取大量图片数据
yalesaleng
程序在需要读取多幅图片时,需要使用多线程来进行操作:coord=tf.train.Coordinator()threads=tf.train.start_queue_runners(coord=coord)#usemultithreadingtooutputimage_batchandlabel_batchtry:whilenotcoord.should_stop()andi<1:image_ba
- netty线程调度定制
aashuii
netty
1、netty的线程调度问题在netty的TCP调度中,线程的调度封装在NioEventLoopGroup中,线程执行则封装在NioEventLoop中。线程调度规则封装在MultithreadEventExecutorGroup的next方法中,这个方法又封装了EventExecutorChooserFactory(实现在DefaultEventExecutorChooserFactory)的n
- 多线程(Thread)
IsLuNaTiC
javajvm开发语言
一、实现多线程多线程是为了同步完成多项任务,提高资源使用率提高系统使用率。1、继承Thread类voidrun()在线程开启后,此方法将被调用执行,run()封装了被线程执行的代码voidstart()启动线程,Java虚拟机会调用run方法()、即由JVM调用此线程的run()方法publicclassMultiThreadedextendsThread{@Overridepublicvoidr
- VC编译时的一些问题
Renduy
C++
VC编译选项多线程(/MT)多线程调试(/MTd)多线程DLL(/MD)多线程调试DLL(/MDd)C运行时库库文件Singlethread(staticlink)MLlibc.libDebugsinglethread(staticlink)MLdlibcd.libMultiThread(staticlink)MTlibcmt.libDebugmultiThread(staticlink)MTdl
- Java并发编程-Future系列之Future的介绍和基本用法
西召
多线程(Multithreading)是Java的一个特性,它可以允许一个程序的多个部分(也就是线程)并发地执行,以达到最大程度利用CPU的目的。关于多线程编程(MultithreadProgramming),下面介绍一下Future的特性和基本用法。dogs_multithread_programmingAboutFutureFuture(java.util.concurrentInterfac
- 深度分析:面试90%被问到的多线程、创建线程、线程状态、线程安全,一次性帮你全搞定!
前程有光
一、多线程1.概述多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。就是在单个程序中同时运行多个线程来完成不同的工作。2.并发与并行并发:指两个或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。3.程序、进程与多线程1)程序Java源程序和字节码文件被称为“程序”(Program),是一个静态的概念。2)进程是指一个内存中运行的
- 基于【C/S模式】、【MySQL数据库】以及【GUI图形用户界面】实现学生成绩管理系统
鸿·蒙
程序语言#Javajavaintellijidea网络课程设计数据库
目录阅读建议:摘要1需求分析2概要设计2.1设计概述2.2模块划分2.2.1用户界面模块2.2.2服务器模块2.2.3数据库模块2.2.4通信模块2.3主要的类2.3.1客户端类(Client)2.3.2服务端类(Server)2.3.3数据库连接类(DatabaseConnection)2.3.4图形用户界面类(GUI)2.3.5多线程管理类(MultiThreadManager)2.3.6通信
- FreeBSD上安装mysql数据库
itachi-uchiha
数据库freebsdmysql
安装前提1、使用pkg安装mysql有个前提FreeBSD版本12.2及以上。2、内存最好是8GB及以上安装$pkgsearchmysql……mysql80-client-8.0.35MultithreadedSQLdatabase(client)mysql80-server-8.0.35MultithreadedSQLdatabase(server)mysql81-client-8.1.0Mul
- python多线程
Yznx_请叫我小哥
kvnG34.jpgpython多线程什么是多线程多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-levelmultithreading)或同时多线程(Simultaneousmultit
- 多线程渲染(Multithreaded- rendering)3D引擎实例分析 : FlagshipEngine
cbbbc
游戏引擎
原文地址:http://www.cppblog.com/flagship/category/9250.html1.开篇:关于FlagshipEngine首先要感谢旗舰工作室的倒掉,让我可以名正言顺的使用FlagshipEngine这个名字,话说这个实验引擎,当初只是我的大学毕业设计,工作之后实在太忙,写写停停,进度缓慢,到今天也只能算V0.001,其特性主要有以下三点:一、多线程多核CPU早已普及
- 【Book 149】Pro Multithreading and Memory Management for iOS and OS X
毛英勇
这本书是专业书,看得稍微有点慢!跨了4个月打算看百本专业书英文版,距离目标,还有点远呀!加油加油!很喜欢这本书,插图精美!
- MSVC(Microsoft Visual C++) 中运行库的链接方式MD和MT的区别
̋(๑˃́ꇴ˂̀๑)̋
WindowsC&C++microsoftc++windows
问题描述MSVC(MicrosoftVisualC++)中运行库的链接方式MD和MT的区别问题解答在MSVC编译器中,运行库(RuntimeLibrary)有两种链接方式:MD(Multithread-DLL)和MT(Multithread)。这两种链接方式的主要区别在于编译后生成的可执行文件(或者动态链接库)是否依赖于动态链接的运行库。MD:动态链接的运行库(MicrosoftVisualC++
- C++标准学习--多线程
baidu_16271159
学习
在以往多线程的实现的时候,都是自己去亲自创建线程,采用特殊flag及锁控制线程的运转状态。这无可厚非,但又似乎有重复造轮子的嫌疑。最近发现了一个线程池的轮子,很不错,ZZ一下。C++多线程+线程池(全详解)-知乎(zhihu.com)多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整
- java并发多线程面试_Java多线程并发面试问答
cunchi4221
python多线程面试java编程语言
java并发多线程面试TodaywewillgothroughJavaMultithreadingInterviewQuestionsandAnswers.WewillalsolookintoConcurrencyinterviewquestionsandanswersbecausebothmultithreadingandconcurrencygohandinhand.今天,我们将讨论Java多
- CentOS在不进入BIOS的情况下关闭超线程
武小胖儿
centoslinux运维
比较新的内核,通过SimultaneousMultithreading(SMT)实现超线程管理。1.查看smt的状态:1=>激活状态,0=>关闭状态cat/sys/devices/system/cpu/smt/active2.改变SMT状态echooff|sudotee/sys/devices/system/cpu/smt/controlrefs:dellpoweredge-Disablehype
- 继之前的线程循环加到窗口中运行
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">