重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个概念是相对使用继承Thread类而言的,使用实现Runnable接口实现多线程时与继承Thread实现多线程最大的区别是数据是否共享。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名申请、虚拟主机、营销软件、网站建设、灌阳网站维护、网站推广。
举例如下(转载过来的):
package com.ava.util;
public class RunnableTest {
public static void main(String[] args) {
Runnable runnable = new MyThread();
new Thread(runnable).start();
new Thread(runnable).start();
new Thread(runnable).start();
new Thread(runnable).start();
}
public static class MyThread implements Runnable {
// 车票数量
private int tickets = 100;
public void run() {
while (tickets 0) {
System.out.println(Thread.currentThread().getName() + "卖出第【"
+ tickets-- + "】张火车票");
}
}
}
}
这个程序执行后,会打印100条记录,也就是说tickets这个常量是由4个线程公用的。
package com.ava.util;
public class RunnableTest {
public static void main(String[] args) {
new MyThread().start();
new MyThread().start();
new MyThread().start();
new MyThread().start();
}
public static class MyThread extends Thread {
// 车票数量
private int tickets = 100;
@Override
public void run() {
while (tickets 0) {
System.out.println(this.getName() + "卖出第【" + tickets--
+ "】张火车票");
}
}
}
}
而同样的程序,用继承Thread类来实现多线程,执行后会打印400条记录,也就是说tickets是线程独有的。
java程序运行需要jre库。你把jdk安装目录下的jre拷贝出来 和jar文件放在同一个目录,双击即可。或者可以直接下载jre安装完了之后就可以直接运行
这个是通过三层结构来实现的。
第一层:controller,本层主要负责页面信息传递;
第二层:service,本层主要接收控制层参数,进行业务方面的处理,之后访问dao数据层。
第三层:dao,本层主要接收业务层内容,之后进行数据的存储和变更、删除操作。
这样就可以实现业务层和数据层的分离了。