1 thread对象
Java代码
Thread t = new Thread(
new Thread(){
@Override
public void run() {
while(true){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("1: "+Thread.currentThread().getName());
System.out.println("2: "+this.getName());
}
}
}
);
t.start();2 Runnable接口
Java代码
Thread t2 = new Thread(
new Runnable(){
@Override
public void run() {
while(true){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("3: "+Thread.currentThread().getName());
}
}
}
);
t2.start();下面会执行哪部分代码呢!
立即学习“Java免费学习笔记(深入)”;
Java代码
//只要重写了run方法,你从构造函数传递进去的线程对象就不会在执行
new Thread(new Runnable(){
@Override
public void run() {
while(true){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("runnable: "+Thread.currentThread().getName());
}
}
}
){
@Override
public void run() {
while(true){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("thread: "+Thread.currentThread().getName());
}
}
}.start();输出结果如下:
Log代码
率先引入语言包机制,可在1小时内制作出任何语言版本,程序所有应用文字皆引自LANG目录下的语言包文件,独特的套图更换功能,三级物品分类,购物车帖心设计,在国内率先将购物车与商品显示页面完美结合,完善的商品管理,具备上架、下架缺货及特价商品设置功能多多,商城名、消费税、最低购物金额、货币符号、商城货币名称全部后台设定,多级用户考虑,管理员只需要设置用户级别、不同级别用户之返点系统自动判断用户应得返还
0
3: Thread-2 1: Thread-1 2: Thread-0 thread: Thread-3
以下代码来自于:JAVA编程思想第四版,说明加了是否加线程的区别!
Counter1 .java没有加线程的表现!
Java代码
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Counter1 extends Applet {
private static final long serialVersionUID = 1L;
private int count = 0;
private Button onOff = new Button("Toggle"), start = new Button("Start");
private TextField t = new TextField(10);
private boolean runFlag = true;
public void init() {
add(t);
start.addActionListener(new StartL());
add(start);
onOff.addActionListener(new OnOffL());
add(onOff);
}
@SuppressWarnings("static-access")
public void go() {
while (true) {
try {
Thread.currentThread().sleep(100);
} catch (InterruptedException e) {
}
if (runFlag)
t.setText(Integer.toString(count++));
}
}
class StartL implements ActionListener {
public void actionPerformed(ActionEvent e) {
go();
}
}
class OnOffL implements ActionListener {
public void actionPerformed(ActionEvent e) {
runFlag = !runFlag;
}
}
public static void main(String[] args) {
Counter1 applet = new Counter1();
Frame aFrame = new Frame("Counter1");
aFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
aFrame.add(applet, BorderLayout.CENTER);
aFrame.setSize(300, 200);
applet.init();
applet.start();
aFrame.setVisible(true);
}
}Counter2i.java加了线程结果大不一样了,加了个内部类,它继承了Thread
Java代码
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Counter2i extends Applet {
private static final long serialVersionUID = 1L;
private class SeparateSubTask extends Thread {
int count = 0;
boolean runFlag = true;
SeparateSubTask() {
start();
}
public void run() {
while (true) {
try {
sleep(100);
} catch (InterruptedException e) {
}
if (runFlag)
t.setText(Integer.toString(count++));
}
}
}
private SeparateSubTask sp = null;
private TextField t = new TextField(10);
private Button onOff = new Button("Toggle"), start = new Button("Start");
public void init() {
add(t);
start.addActionListener(new StartL());
add(start);
onOff.addActionListener(new OnOffL());
add(onOff);
}
class StartL implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (sp == null)
sp = new SeparateSubTask();
}
}
class OnOffL implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (sp != null)
sp.runFlag = !sp.runFlag; // invertFlag();
}
}
public static void main(String[] args) {
Counter2i applet = new Counter2i();
Frame aFrame = new Frame("Counter2i");
aFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
aFrame.add(applet, BorderLayout.CENTER);
aFrame.setSize(300, 200);
applet.init();
applet.start();
aFrame.setVisible(true);
}
}Counter3.java它实现了Runnable接口
Java代码
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Counter3 extends Applet implements Runnable {
private static final long serialVersionUID = 1L;
private int count = 0;
private boolean runFlag = true;
private Thread selfThread = null;
private Button onOff = new Button("Toggle"), start = new Button("Start");
private TextField t = new TextField(10);
public void init() {
add(t);
start.addActionListener(new StartL());
add(start);
onOff.addActionListener(new OnOffL());
add(onOff);
}
@SuppressWarnings("static-access")
public void run() {
while (true) {
try {
selfThread.sleep(100);
} catch (InterruptedException e) {
}
if (runFlag)
t.setText(Integer.toString(count++));
}
}
class StartL implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (selfThread == null) {
selfThread = new Thread(Counter3.this);
selfThread.start();
}
}
}
class OnOffL implements ActionListener {
public void actionPerformed(ActionEvent e) {
runFlag = !runFlag;
}
}
public static void main(String[] args) {
Counter3 applet = new Counter3();
Frame aFrame = new Frame("Counter3");
aFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
aFrame.add(applet, BorderLayout.CENTER);
aFrame.setSize(300, 200);
applet.init();
applet.start();
aFrame.setVisible(true);
}
}更多Java之线程(匿名内部类)相关文章请关注PHP中文网!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号