- 浏览: 11074 次
- 性别:
最新评论
文章列表
在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。
实现Runnable接口比继承Thread类所具有的优势:
1):适合多个相同的程序代码的线程去处理同一个资源
2):可以避免java中的单继承的限制
3):增加程序的健壮性,代码可以被多个线程共享,代码和数据独立
提醒一下大家:main方法其实也是一个线程。在java中所有的线程都是同时启动的,至于什么时候,哪个先执行,完全看谁先得到CPU的资源。
在java中,每次程序运行至少启动2个线程。一个是main线程,一个是垃圾收集线程。因为每当使用java命令执行一个类的时候,实际上 ...
Threadloca是解决线程安全问题的一个很好的思路,他通过为每个线程提供一个独立的变量副本解决解决了变量并发访问的冲突问题。在很多情况下,ThreadLocal比直接使用synchronized同步机制解决线程安全问题更简单,更方便,且结果程序拥有更高的并发性。
对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式。前者仅提供一份变量,让不同的线程排队访问,而后者为每一个线程都提供了一份变量,因此可以同时访问而互不影响。
ThreadLocal 并不能替代同步机制,两者面向的问题领域不同。
1:同步机制是为了同步多个线程对相同 ...
java中 ThreadLocal 类 作用
- 博客分类:
- java
1.ThreadLocal是什么
jdk1.2提供了ThreadLocal类,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个类可以很简洁地编写出优美的多线程程序。
Threadlocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。
当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。
...
一、面向对象
1. 采用clone()方式创建对象
clone()方法是Object类下方法,是对一个对象的拷贝,返回的是个新对象,而不是一个对象的引用地址;且这个拷贝包含了原来对象的信息,而不是对象的初始信息;clone()创建对象 ...
1.jquery.ajax之beforeSend用法
$.ajax({
type:"GET",//还有 POST,默认是GET
data:{},//请求携带的参数信息
url:"a.php",//发送请求的地址
dataType:"html",//预期服务器返回的数据类型
beforeSend:beforeSend,//发送请求前执行此函数
success:callback, //请求成功
error:error,//请求出错
complete:complete //请求完成 ...
1.比较一个yyyy-MM-dd类型的字符串日期与当前日期的时间差
public static int between(String s) throws ParseException{
// 我这里参数日期大于当前日期,否则计算式负数(你可以Math.abs(long)取绝对值)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(s));
long star ...
Properties props=System.getProperties(); //系统属性
System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));
System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));
System.out.println("Java供应商的URL:"+props.getPro ...
使用不同方式打开指定url & 跳转到指定url
- 博客分类:
- 常用组件
1.方法一,用java的api--uri使用默认浏览器打开url
public class TestSystem {
public static void main(String[] args) {
//判断当前系统是否支持Java AWT Desktop扩展
if(java.awt.Desktop.isDesktopSupported()){
try {
//创建一个URI实例
java.net.URI uri = java.net.URI.create("http://www.baidu.com/&q ...
Servlet 是 SUN 推出的一套规范,规定了如何用 Java 来开发动态网站。也就是说,Java 可以用来开发网站后台,但是要遵循一定的标准。
Servlet 可以使用所有的 Java API,类库丰富,功能强大。
通过Servlet,你可以:
•接收用户通过 <form> 表单提交的信息;
•查询数据库,包括用户信息、文章内容、页面点击次数等;
•生成验证码,防止机器恶意注册。
例如,要在网页上显示IP地址,它的HTML源码是:
<html lang="zh"><head>
<meta charset= ...
Tomcat 7最大的改进是对Servlet 3.0和Java EE 6的支持。
Tomcat 7完全支持Servlet 3.0规范
Tomcat 7新增了对Java注释的支持
Tomcat 7通过web.xml动态配置引用类库的功能
Tomcat 7改进了安全回话的跟踪
Tomcat 7重构了comet类,将comet类从org.apache.catalina包下移动到org.apache.catalina.comet包下面,这个改动让comet类可以工作在security manager管理之下
Tomcat 7改进了关系服务时候的功能,让关闭时的地址可以配置
Tomcat ...
Jakarta POI 是一套用于访问微软格式文档的Java API。
Jakarta POI有很多组件组成,其中有用于操作Excel格式文件的HSSF和用于早在Word的HWPF,在各种组件中目前只有用于操作Excel的HSSF相对成熟。它的官方首页是:http://jakarta.apache.org/poi/hssf/index.html,这里可以下载到它的最新版本和文档。
下面就来看看如何通过Jakarta POI的HSSF操作Excel文件。
操作Excel文件的步骤同JXL类似(关于如何用JXL操作Excel可以看我的另外两篇文章)。
HSSF对Excel的操作主要是 ...
在JDBC的操作中,打开和关闭数据库连接,是最耗费数据库资源的,我们可以在服务器上存放一定量的数据库连接,每当程序要连接数据库时,就将这些链接给它们,而一旦程序退出数据库操作时,要将这些链接返回给服务器。
1:将下面的代码添加到Tomcat服务器上conf/context.xml中的<Context></Context>标签中,
2.也可以写在server.xml的<GlobalNamingResources></GlobalNamingResources>中
例如:
<Resource
name="j ...
一、准备阶段
下载log4j2相关jar包:log4j-core-xx.jar and log4j-api-xx.jar
了解log4j版本1和2的区别:
a.log4j传统的配置使用.properties文件(键值对的形式)居多
b.log4j2中默认搜索的配置文件名字变为log4j2或log4j2-test开头的配置文件
(性 ...
a.mysql数据库
1.查询mysql中所有数据库名称
select SCHEMA_NAME from information_schema.SCHEMATA
2.查询mysql某个数据库下的所有表名
select TABLE_NAME FROM information_schema.TABLES where TABLE_SCHEMA = '数据库名'
3.授权用户可以在任何主机连接
grant all privileges on *.* to 'username'@'%' identified by 'password' with grant option;
4.查看mys ...
js 和 jsp快速开发(持续更新中)
- 博客分类:
- 常用代码
1.动态获取系统当前时间
<b>当前时间</b>:<span id="sysTime"></span>
<script type="text/javascript">
window.onload=function(){
window.setInterval("getTime()",1000); //每隔1000ms执行getTime()函数
}
function get ...