当前位置:首页 » 编程语言 » java线程异常

java线程异常

发布时间: 2022-08-11 18:39:49

‘壹’ java多线程执行异常

多线程不是多个线程一起执行,多线程实际上是多个线程之间轮流执行的,就是将一个时间段分成若干个时间片,每个线程只运行一个时间片,由于时间片极短,而且电脑运行极快,线程之间切换也极快,几乎可以看做是并行运行的,也就是说可以看成是同时运行的.但实际却不是的同时运行的.你的循环次数太少,执行的时间小于时间片,所以才不会交替出现,你可以把i改为100试下

‘贰’ 有没有java线程和异常处理的经典代码

是特殊的线程,一般用于在后台为其他线程提供服务.
isDaemon():判断一个线程是否为守护线程.
set
Daemon():设置一个线程为守护线程.
Thread类和Runnable接口
Thread类
类Thread在包java.lang中定义,它的构造方法如下:
public
Thread();
public
Thread(Runnable
target);
public
Thread(Runnable
target,String
name);
public
Thread(String
name);
public
Thread(ThreadGroup
group,Runnable
target);
public
Thread(ThreadGroup
group,
String
name);
主要方法
isActive()
判断是否处于执行状态
Suspend()
暂停执行
reSume
恢复执行
start()
开始执行
Stop()
停止执行
sleep()
睡眠
run()
程序体
yield()
向其他线程退让运行权
线程优先级
Public
statuc
final
int
MAX_PRIORITY最高优先级,10
Public
statuc
final
int
MIN_PRIORITY最低优先级,1
Public
statuc
final
int
NORM_PRIORITY普通优先级,5
Runnable接口
Runnable接口中只定义了一个方法run()作为线程体,
void
run()
Java的线程是通过java.lang.Thread类来实现的。
VM启动时会有一个由主方法(public
static
void
main(){})所定义的线程。
可以通过创建Thread的实例来创建新的线程。
每个线程都是通过某个特定的Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。
通过调用Thread类的start()方法来启动一个线程
Java里面实现多线程,有2个方法
1
继承
Thread类,比如
class
MyThread
extends
Thread
{
public
void
run()
{
//
这里写上线程的内容
}
public
static
void
main(String[]
args)
{
//
使用这个方法启动一个线程
new
MyThread().start();
}
}
2
实现
Runnable接口
class
MyThread
implements
Runnable{
public
void
run()
{
//
这里写上线程的内容
}
public
static
void
main(String[]
args)
{
//
使用这个方法启动一个线程
new
Thread(new
MyThread()).start();
}
}
一般鼓励使用第二种方法,应为Java里面只允许单一继承,但允许实现多个接口。第二个方法更加灵活。

‘叁’ java 创建的线程出现异常,线程停止么

般情况下,线程里面的代码执行完毕,这个线程就结束了,关闭了。
如果线程是后台线程,那么当所有前台线程结束,这个后台线程不管有没有执行完毕,也会关闭。

‘肆’ 关于java线程池中线程执行异常捕获

线程抛出的异常,只能有那个线程捕获,其他线程是无法捕获的。你的线程池对象在主线程中,主线程无法捕获其他线程的异常。
你可以使用线程间通信的方式,通知主线程,发生了异常。

‘伍’ java线程异常

线程抛出的异常,只能有那个线程捕获,其他线程是无法捕获的。你的线程池对象在主线程中,主线程无法捕获其他线程的异常。你可以使用线程间通信的方式,通知主线程,发生了异常。

‘陆’ Java异常处理线程问题

用这个接口试试,java.util.concurrent
.ScheledExecutorService,当连接失败时启动下面的任务再去连接。
import
static
java.util.concurrent.TimeUnit.*;
class
BeeperControl
{
private
final
ScheledExecutorService
scheler
=
Executors.newScheledThreadPool(1);
public
void
beepForAnHour()
{
final
Runnable
beeper
=
new
Runnable()
{
public
void
run()
{
System.out.println("beep");
}
};
final
ScheledFuture<?>
beeperHandle
=
scheler.scheleAtFixedRate(beeper,
10,
10,
SECONDS);
scheler.schele(new
Runnable()
{
public
void
run()
{
beeperHandle.cancel(true);
}
},
60
*
60,
SECONDS);
}
}

‘柒’ java线程发生异常时怎么重新启动这个线程

1.主线程写个循环3次的循环
2.循环体内运行线程,运行完以后调用wait()等待
3.线程在运行,如果出异常notifyAll()唤醒主线程继续循环

‘捌’ Java线程的几种状态

线程是一个动态执行的过程,它有一个从产生到死亡的过程,共五种状态:

1、新建(new Thread)

当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动)

例如:Thread t1=new Thread();

2、就绪(runnable)

线程已经被启动,正在等待被分配给CPU时间片,也就是说此时线程正在就绪队列中排队等候得到CPU资源。例如:t1.start();

3、运行(running)

线程获得CPU资源正在执行任务(run()方法),此时除非此线程自动放弃CPU资源或者有优先级更高的线程进入,线程将一直运行到结束。

4、堵塞(blocked)

由于某种原因导致正在运行的线程让出CPU并暂停自己的执行,即进入堵塞状态。

  • 正在睡眠:用sleep(long t) 方法可使线程进入睡眠方式。一个睡眠着的线程在指定的时间过去可进入就绪状态。

  • 正在等待:调用wait()方法。(调用notify()方法回到就绪状态)

  • 被另一个线程所阻塞:调用suspend()方法。(调用resume()方法恢复)

5、死亡(dead)

当线程执行完毕或被其它线程杀死,线程就进入死亡状态,这时线程不可能再进入就绪状态等待执行。

  • 自然终止:正常运行run()方法后终止

  • 异常终止:调用stop()方法让一个线程终止运行

热点内容
垃圾压缩价格 发布:2025-01-20 22:14:05 浏览:421
温十系统如何看处理器配置 发布:2025-01-20 21:59:47 浏览:302
米号源码 发布:2025-01-20 21:55:30 浏览:893
电信四川dns服务器ip 发布:2025-01-20 21:54:51 浏览:92
电脑弹出脚本错误还能继续使用吗 发布:2025-01-20 21:42:29 浏览:586
安卓私密照片在哪里 发布:2025-01-20 21:41:05 浏览:5
同济复试编译原理 发布:2025-01-20 21:33:54 浏览:310
c语言判断字母 发布:2025-01-20 21:31:09 浏览:424
ftp服务器搭建linux 发布:2025-01-20 21:26:05 浏览:335
安卓手机浏览器如何翻译英文网页 发布:2025-01-20 21:21:01 浏览:423