java学习笔记(12)--多线程程序设计

一、题目

1. 何为线程和多线程?如何建立多线程?

所谓线程,是指进程中一组程序与相应的操作的控制说明信息的集合。多线程就是指多个线程的并发执行。在Java中建立多线程可以创建自己的类继承自类Threads。
线程是一个程序内部的顺序控制流。多线程是指在同一应用程序中有多个顺序控制流 “同时” 执行。

2. 线程的生命周期由哪几种状态?各状态之间分别用哪些方法切换?

线程在其生命期内有就绪、运行、阻塞、终止状态。
由下图我们可以得出线程有就绪、可运行、不可运行和终止四中基本状态。其中。就绪状态通过start()函数转换成可运行状态,可运行状态通过方法run()令方法终止;或者通过sleep()、wait()变成不可运行状态。同时不可运行状态也可通过阻塞解除或者睡眠时间到达被唤醒从而转化回可运行状态。
这里写图片描述

3. Java程序实现多线程有哪些途径?

创建一个自己的线程类纪承自Threads类。
Java中创建线程有两种方法:其中一类是继承Thread类;再者就是通过定义实现Runnable接口。

4. 编写两个线程:

第一个线程计算2-1000000之间的质数及个数
第二个线程计算1000000-2000000之间的质数及个数

package xiti12;
import java.io.*;
import java.math.*;

class num{//数类
int number;
num(int num){
    number = num;
}
boolean isPrime(int x) {//判断数是否为质数
    if(x==1) {
        return false;
    }
    else if(x==2) {
        return true;
    }
    else {
        for(int i=2;i<Math.sqrt(x);i++) {
            if(x%i==0) {
                return false;
            }
        }
    }
    return true;
}
}
class myThread extends Thread{//线程类
    private String threadName;
    int min;
    int max;
    int count = 0;
    myThread(String str,int a,int b){
        threadName = str;
        min = a;
        max = b;
    }
    public void run() {
        try {
            for(int i=min;i<=max;i++) {
                num i1 = new num(i);
                i1.number=i;
                if(i1.isPrime(i)) {
                    count++;
                }
            }
            System.out.println(threadName+"区域内质数个数为:"+count);
        }
        catch(Exception e){
            System.out.println("出现异常");
        }
    }
}
public class xiti12_4_Thread1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        myThread th1 = new myThread("Thread1",2,1000000);
        myThread th2 = new myThread("Thread2",1000000,2000000);
        th1.run();
        th2.run();
    }
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李霁明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值