基于过程的多任务处理(多处理)
基于线程的多任务处理(多线程)
每个进程在内存中都有一个地址。换句话说,每个进程分配一个单独的内存区域。
一个过程很重要。
进程之间的通讯成本很高。
从一个过程切换到另一个过程需要一些时间来保存和加载寄存器,内存映射,更新列表等。
线程共享相同的地址空间。
线程是轻量级的。
线程之间的通信成本很低。
修饰符和类型 | 方法 | 说明 |
void | start() | 它用于启动线程的执行。 |
void | run() | 它用于对线程执行操作。 |
static void | sleep() | 它使线程休眠指定的时间。 |
static Thread | currentThread() | 它返回对当前正在执行的线程对象的引用。 |
void | join() | 它等待线程死亡。 |
int | getPriority() | 它返回线程的优先级。 |
void | setPriority() | 它将更改线程的优先级。 |
String | getName() | 它返回线程的名称。 |
void | setName() | 它将更改线程的名称。 |
long | getId() | 它返回线程的ID。 |
boolean | isAlive() | 它测试线程是否还活着。 |
static void | yield() | 这将导致当前正在执行的线程对象暂停并允许其他线程临时执行。 |
void | suspend() | 它用于挂起线程。 |
void | resume() | 它用于恢复挂起的线程。 |
void | stop() | 它用于停止线程。 |
void | destroy() | 它用于销毁线程组及其所有子组。 |
boolean | isDaemon() | 它测试线程是否是守护线程。 |
void | setDaemon() | 它将线程标记为守护程序或用户线程。 |
void | interrupt() | 它将中断线程。 |
boolean | isinterrupted() | 它测试线程是否已被中断。 |
static boolean | interrupted() | 它测试当前线程是否已被中断。 |
static int | activeCount() | 它返回当前线程的线程组中活动线程的数量。 |
void | checkAccess() | 它确定当前正在运行的线程是否有权修改该线程。 |
static boolean | holdLock() | 仅当当前线程在指定对象上拥有监视器锁时,它才返回true。 |
static void | dumpStack() | 它用于将当前线程的堆栈跟踪信息打印到标准错误流中。 |
StackTraceElement [] | getStackTrace() | 它返回表示线程堆栈转储的堆栈跟踪元素数组。 |
static int | enumerate() | 用于将每个活动线程的线程组及其子组复制到指定的数组中。 |
Thread.State | getState() | 它用于返回线程的状态。 |
ThreadGroup | getThreadGroup() | 用于返回该线程所属的线程组 |
String | toString() | 它用于返回此线程的字符串表示形式,包括线程的名称,优先级和线程组。 |
void | notify() | 它仅用于通知正在等待特定对象的一个线程。 |
void | notifyAll() | 它用于向特定对象的所有等待线程发出通知。 |
void | setContextClassLoader() | 它为线程设置上下文ClassLoader。 |
ClassLoader | getContextClassLoader() | 它返回线程的上下文ClassLoader。 |
static Thread.UncaughtExceptionHandler | getDefaultUncaughtExceptionHandler() | 它返回由于未捕获的异常而导致线程突然终止时调用的默认处理程序。 |
static void | setDefaultUncaughtExceptionHandler() | 它设置当线程由于未捕获的异常突然终止时调用的默认处理程序。 |
如何创建线程
命名线程和当前线程
线程优先级
Java守护线程程序
Java线程池
Java线程组
Java垃圾回收
Java Runtime类