网站建设设计工具,甜品网站建设规划,网站建设公司的税是多少钱,yeti2.0 wordpress主题多线程编辑#xff1a; 可以简单理解进程是一个软件 而线程就是一个软件中多个可以同时运行的功能 实现多线程的第一种方式#xff1a;使用Thead类我们再自己创造一个类继承于这个类我们在对Thead方法进行重写#xff0c;注意我们再重写的时候一定要加上Override这行 我犯下…多线程编辑 可以简单理解进程是一个软件 而线程就是一个软件中多个可以同时运行的功能 实现多线程的第一种方式使用Thead类我们再自己创造一个类继承于这个类我们在对Thead方法进行重写注意我们再重写的时候一定要加上Override这行 我犯下的错误2
我们在类里面调用方法的时候我们是不需要加上对象的名字当我们在想要使用多线程的时候我们要用对象名.start() 这个时候才能实现多线程 多线程的第二种实现方式实现Runnable接口的方式进行实现 具体代码如上 实现多线程的第3种方式
着种方式可以获得多线程的结果 实现多线程的步骤第一创建任务 第二分配任务 第三讲任务交给多线程 第四启动多线程 Thread类的成员方法 继承的复习当我们想要在子类进行构造方法我们可以先用super继承父类 然后我们在后面我们创建的线程取名字。 在多线程中如果我们使用的是接口的话我们就需要创建任务然后再将任务放到多线程中
如果我们使用的是extends 继承Thread类的话我们就可以直接使用多线程 延时
Thread.sleep(毫秒) 这个其实就是和easyx库里面的sleep函数是一个意思由于这个Thread.sleep是静态方法我们直接类名加上方法名使用。 设置线程优先级
对象名.setPriority()这个是给我们设置优先级的最高优先级是10最低优先级是1这个优先级只是代表了一个概率的问题 守护线程备胎线程 具体代码如上
效果就是作为备胎当它要保护的对象已经执行完了那么这个备胎对象就没有执行下去的必要了那么就会自动停止注意这个不是马上就会停止而是会等一段时间才会停下来 线程的生命周期 线程安全由于多线程具有随机性当一条语句还没有完全执行完有可能就会被另外一条语句所占有这个时候就会造成错误就好比我们和好朋友再上厕所只有厕所有门的时候才能单独上厕所如果厕所没有门那么本来该单人厕所就会被两个人占有就会出问题。
所以这个时候我们呢就需要一种操作’锁’synchronized 我犯下的错误
这个延时应该放在锁的外面
package duoxianchenanquan;public class Mythread extends Thread{static int ticket 0;Overridepublic void run(){while(true){try {Thread.sleep(10);} catch (InterruptedException e) {throw new RuntimeException(e);}synchronized (Mythread.class){if(ticket 100){ticket;System.out.println(getName() 正在卖第 ticket 张票! ! !);}else {break;}}}}}当我们需要对一个方法进行 就是一个同步方法 顺便复习一下this的使用方法他的这个对象就是调用这个方法的对象
小技巧ctrl alt m这个就可以使我们选择的一段代码直接转化为一个方法。 Lock锁 为了避免死锁我们就不能写一个锁嵌套的结构
生产消费机制