一、程序,进程,线程联系和区别
其实程序是一段静态的代码,它是应用程序执行的脚本。进程就是程序动态的执行过程,它具有动态性,并发性,独立性。线程是进程调度和执行的单位。
进程:每个进程都有独立的代码和数据空间(进程上下文),一个进程包含一个或者多个线程,同时线程是资源分配的最小单位。
线程:同一类线程共享代码和数据空间,并且每个线程有独立运行栈和程序计数器,同时线程是调度的最小单位。
那什么是多进程呢? ,常见的是打开我们自己电脑任务管理器里面就还有多个进程,其实指的是我们的操作系统能同时运行多个任务(微信,QQ等)。
多线程其实就是一个进程有多条路径在运行。
二、多线程实现的方式
在Java中实现多线程有三种方式,第一种方式是继承Thread类,第二种方式是实现Runnable接口, 第三种是实现Callable,结合Future使用(了解),并发编程中使用,这里不详细说:
第一种实现多线程的方式,继承Thread类,代码实现如下:

public class RabbitDemo extends Thread {
@Override
public void run() {
for (int i = 0; i <10 ; i++) {
System.out.println(“兔子跑了:”+i+“步”);
}
}}public class TortoiseDemo extends Thread {
@Override
public void run() {
for (int i = 0; i <10 ; i++) {
System.out.println(“乌龟跑了:”+i+“步”);
}
}}public class ClientThreadTest {
public static void main(String[] args) {
RabbitDemo rabbitDemo = new RabbitDemo();
TortoiseDemo tortoiseDemo = new TortoiseDemo();
rabbitDemo.start();
tortoiseDemo.start();
for (int i = 0; i < 10; i++) {
System.out.println(“main==>” + i);
}
}}

第二个实例实现多个线程同时共享一个成员变量线程的运行状态。

public class Qp12306 implements Runnable {
private int num=50;
@Override
public void run() {
while (true){
if (num<=0){
break;
}
System.out.println(Thread.currentThread().getName()+“抢到票”+num–);
}
}}public class ClientQpTest {
public static void main(String[] args) {
Qp12306 qp12306 = new Qp12306();
Thread thread = new Thread(qp12306, “张三”);
Thread thread1 = new Thread(qp12306, “李四”);
Thread thread2 = new Thread(qp12306, “王五”);
thread.start();
thread1.start();
thread2.start();
}}

第二种方式:实现 Runnable接口,重写run方法,这种方式我们实现多线程常用的方式(避免Java单继承的限制)并且该方式采用了静态代理设计模式(参考: 静态代理),代码实例如下 :

public class RunnableDemo implements Runnable {

@Override
public void run() {for (int i = 0; i < 10; i++) {System.out.println("Runnable:" + i);}
}}public class ClientRunableTest {
public static void main(String[] args) {RunnableDemo runnableDemo = new RunnableDemo();Thread thread = new Thread(runnableDemo);thread.start();
}}

第三方式:实现Callable接口,结合Future实现多线程,代码实例如下:

/**

  • 使用Callable创建线程
    */public class Race implements Callable {
    private String name;
    private long time; //延时时间
    private boolean flag = true;
    private int step = 0; //步

    @Override
    public Integer call() throws Exception {
    while (flag) {
    Thread.sleep(time);
    step++;
    }
    return step;
    }

    public Race(String name, long time) {
    this.name = name;
    this.time = time;
    }

    public void setFlag(boolean flag) {
    this.flag = flag;
    }}public class CallableTest {
    public static void main(String[] args) throws InterruptedException, ExecutionException {
    ExecutorService executorService = Executors.newFixedThreadPool(2);
    Race race = new Race(“张三”, 200);
    Race race1 = new Race(“李四”, 500);
    Future result = executorService.submit(race);
    Future result1 = executorService.submit(race1);
    Thread.sleep(3000);
    race.setFlag(false);
    race1.setFlag(false);
    int num1 = result.get();
    int num2 = result1.get();
    System.out.println(“张三–>” + num1 + “步”);
    System.out.println(“李四–>” + num2 + “步”);
    //停止服务
    executorService.shutdownNow();
    }}

如果一个类继承Thread,则不适合资源共享。但是如果实现了Runable接口的话,则很容易的实现资源共享。
总结:
实现Runnable接口比继承Thread类所具有的优势:
1、适合多个相同的程序代码的线程去处理同一个资源
2、可以避免java中的单继承的限制
3、增加程序的健壮性,代码可以被多个线程共享,代码和数据独立
4、线程池只能放入实现Runable或callable类线程,不能直接放入继承Thread的类
main方法其实也是一个线程。在java中所以的线程都是同时启动的,至于什么时候,哪个先执行,完全看谁先得到CPU的资源。
在java中,每次程序运行至少启动2个线程。一个是main线程,一个是垃圾收集线程。因为每当使用java命令执行一个类的时候,实际上都会启动一个JVM,每一个jVM就是在操作系统中启动了一个进程。
三、线程的状态和方法
线程从创建,运行到结束总是处于五种状态之一:新建状态,就绪状态,运行状态,阻塞状态,死亡状态。
线程共包括一下5种状态:
1.新建状态 :线程对象被创建后就进入了新建状态,Thread thread = new Thread();
2.就绪状态(Runnable):也被称之为“可执行状态”,当线程被new出来后,其他的线程调用了该对象的start()方法,即thread.start(),此时线程位于“可运行线程池”中,只等待获取CPU的使用权,随时可以被CPU调用。进入就绪状态的进程除CPU之外,其他运行所需的资源都已经全部获得。
3.运行状态(Running):线程获取CPU权限开始执行。注意:线程只能从就绪状态进入到运行状态。
4.阻塞状态(Bloacked):阻塞状态是线程因为某种原因放弃CPU的使用权,暂时停止运行,知道线程进入就绪状态后才能有机会转到运行状态。
阻塞的情况分三种:
(1)、等待阻塞:运行的线程执行wait()方法,该线程会释放占用的所有资源,JVM会把该线程放入“等待池中”。进入这个状态后是不能自动唤醒的,必须依靠其他线程调用notify()或者notifyAll()方法才能被唤醒。
(2)、同步阻塞:运行的线程在获取对象的(synchronized)同步锁时,若该同步锁被其他线程占用,则JVM会吧该线程放入“锁池”中。
(3)、其他阻塞:通过调用线程的sleep()或者join()或发出了I/O请求时,线程会进入到阻塞状态。当 sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新回到就绪状态
死亡(Dead):线程执行完了或因异常退出了run()方法,则该线程结束生命周期。
阻塞线程方法的说明:
wait(), notify(),notifyAll()这三个方法是结合使用的,都属于Object中的方法,wait的作用是当当前线程释放它所持有的锁进入等待状态(释放对象锁),而notify和notifyAll则是唤醒当前对象上的等待线程。
wait() —— 让当前线程处于“等待(阻塞)状态”,“直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法”,当前线程被唤醒(进入“就绪状态”)。
sleep() 和 yield()方法是属于Thread类中的sleep()的作用是让当前线程休眠(正在执行的线程主动让出cpu,然后cpu就可以去执行其他任务),即当前线程会从“运行状态”进入到阻塞状态”,但仍然保持对象锁,仍然占有该锁。当延时时间过后该线程重新阻塞状态变成就绪状态,从而等待cpu的调度执行。
sleep()睡眠时,保持对象锁,仍然占有该锁。
yield()的作用是让步,它能够让当前线程从运行状态进入到就绪状态”,从而让其他等待线程获取执行权,但是不能保证在当前线程调用yield()之后,其他线程就一定能获得执行权,也有可能是当前线程又回到“运行状态”继续运行。
wait () , sleep()的区别:
1、每个对象都有一个锁来控制同步访问。Synchronized关键字可以和对象的锁交互,来实现线程的同步。 sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。
2、 wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用
3、 sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常
4、 sleep()睡眠时,保持对象锁,仍然占有该锁,而wait()释放对象锁;
四、线程的基本信息和优先级
涉及到线程的方法:Thread.currentThread() 当前线程,setName():设置名称,getName():获取名称,isAlive():判断状态
优先级:Java线程有优先级,优先级高的线程能获取更多的运行机会。
Java线程的优先级用整数表示,取值范围是1~10,Thread类有以下三个静态常量:
static int MAX_PRIORITY
线程可以具有的最高优先级,取值为10。
static int MIN_PRIORITY
线程可以具有的最低优先级,取值为1。
static int NORM_PRIORITY
分配给线程的默认优先级,取值为5。
下面代码实现:
基本信息

public static void main(String[] args) throws InterruptedException {
Rundemo rundemo = new Rundemo();
Thread thread = new Thread(rundemo);
thread.setName(“线程”); //设置线程的名称
System.out.println(thread.getName()); //获取当前线性的名称
System.out.println(Thread.currentThread().getName()); //main线程
thread.start();
System.out.println(“线程启动后的状态:” + thread.isAlive());
Thread.sleep(10);
rundemo.stop();
Thread.sleep(1000); //停止后休眠一下,再看线程的状态
System.out.println(“线程停止后的状态:” + thread.isAlive());
test();

}

优先级

public static void test() throws InterruptedException {
Rundemo rundemo1 = new Rundemo();
Thread thread1 = new Thread(rundemo1);
thread1.setName(“线程thread1”);
Rundemo rundemo2 = new Rundemo();
Thread thread2 = new Thread(rundemo2);
thread2.setName(“线程thread2”);
thread1.setPriority(Thread.MAX_PRIORITY);
thread2.setPriority(Thread.MIN_PRIORITY);
thread1.start();
thread2.start();
Thread.sleep(1000);
rundemo1.stop();
rundemo2.stop();

}

五、线程的同步和死锁问题
同步方法:synchronized
同步代码块:synchronized(引用类型|this|类.class){
}
线程同步是为了多个线程同时访问一份资源确保数据的正确,不会造成数据的桩读,死锁是线程间相互等待锁锁造成的.
下面代码实现:多个线程同时访问一份资源使用synchronized

public class Qp12306 implements Runnable {
private int num = 10;
private boolean flag = true;

@Override
public synchronized void run() {while (true) {test();}
}public synchronized void test() {if (num <= 0) {flag = false;return;}System.out.println(Thread.currentThread().getName() + "抢到票" + num--);
}}public class ClientQpTest {
public static void main(String[] args) {Qp12306 qp12306 = new Qp12306();Thread thread = new Thread(qp12306, "张三");Thread thread1 = new Thread(qp12306, "李四");Thread thread2 = new Thread(qp12306, "王五");thread.start();thread1.start();thread2.start();
}}

运行结果

synchronized 静态代码块

public class Client {
public static void main(String[] args) throws InterruptedException {
JvmThread thread1 = new JvmThread(100);
JvmThread thread2 = new JvmThread(500);
thread1.start();
thread2.start();

}}class JvmThread extends Thread{
private long time;
public JvmThread() {
}
public JvmThread(long time) {this.time =time;
}
@Override
public void run() {System.out.println(Thread.currentThread().getName()+"-->创建:"+Jvm.getInstance(time));
}}/**
  • 单例设计模式

  • 确保一个类只有一个对象

  • 懒汉式

  • 1、构造器私有化,避免外部直接创建对象

  • 2、声明一个私有的静态变量

  • 3、创建一个对外的公共的静态方法 访问该变量,如果变量没有对象,创建该对象
    */class Jvm {
    //声明一个私有的静态变量
    private static Jvm instance =null;
    //构造器私有化,避免外部直接创建对象
    private Jvm(){

    }
    //创建一个对外的公共的静态方法 访问该变量,如果变量没有对象,创建该对象
    public static Jvm getInstance(long time){
    if(nullinstance){
    synchronized(Jvm.class){
    if(null
    instance ){
    try {
    Thread.sleep(time);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    instance =new Jvm();
    }
    }
    }
    return instance;
    }

    public static Jvm getInstance3(long time){
    synchronized(Jvm.class){
    if(null==instance ){
    try {
    Thread.sleep(time);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    instance =new Jvm();
    }
    return instance;
    }
    }
    }

六、生产者消费者模式
生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,如下图所示,生产者向空间里存放数据,而消费者取用数据,如果不加以协调可能会出现以下情况:
存储空间已满,而生产者占用着它,消费者等着生产者让出空间从而去除产品,生产者等着消费者消费产品,从而向空间中添加产品。互相等待,从而发生死锁.
具体实现代码如下:

/**

  • 生产者
    */public class ProduceRu implements Runnable {
    private Movie movie;

    public ProduceRu(Movie movie) {
    this.movie = movie;
    }

    @Override
    public void run() {
    for (int i = 0; i < 10; i++) {
    if (0 == i % 2) {
    movie.proTest(“向往的生活”);
    } else {
    movie.proTest(“好声音”);
    }
    }
    }}/**
    *消费者
    */public class ConsumeRu implements Runnable {
    private Movie movie;

    public ConsumeRu(Movie movie) {
    this.movie = movie;
    }
    @Override
    public void run() {
    for(int i=0;i<10;i++){
    movie.conTest();
    }
    }}/**

  • 生产者消费者模式共同访问同一份资源

  • wait() 等等,释放锁,sleep()不释放锁

  • notify()/notifyAll():唤醒
    */public class Movie {

    private String pic;
    //flag—>true 生产者生产,消费者等待,生产完后通知消费
    //flag—>false 消费者消费,生产者等待,消费完通知生产
    private boolean flag = true;

    /**

    • 生产者生产,消费者等待,生产完后通知消费
    • @param pic
      */
      public synchronized void proTest(String pic) {
      if (!flag) {
      try {
      this.wait();
      } catch (InterruptedException e) {
      e.printStackTrace();
      }
      }
      try {
      Thread.sleep(1000);
      } catch (InterruptedException e) {
      e.printStackTrace();
      }
      System.out.println(“生产了:” + pic);
      this.pic = pic;
      this.notify();
      this.flag = false;

    }

    /**

    • 消费者消费,生产者等待,消费完通知生产
      */
      public synchronized void conTest() {
      if (flag) {
      try {
      this.wait();
      } catch (InterruptedException e) {
      e.printStackTrace();
      }
      }
      System.out.println(“消费者:” + pic);
      this.notifyAll();
      this.flag = true;
      }}public class ClientTest {
      public static void main(String[] args) {
      Movie movie=new Movie();
      new Thread(new ProduceRu(movie)).start();
      new Thread(new ConsumeRu(movie)).start();
      }}

七、任务调度
1.Thread实现方法
这是最常见的,创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果。这样可以快速简单的实现,代码如下:

public class ThreadTest {
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
try {
System.out.println(“任务开始了”);
while (true) {
Thread.sleep(1000);
System.out.println(“hello”);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
Thread thread = new Thread(runnable);
thread.start();
}}

2.TimeTask实现方法
Thread方法优点就是简单,但缺少了灵活性,TimeTask实现方法最主要的两个优点是:可以控制启动和取消任务的时间、第一次执行任务时可以指定想要delay的时间。
实现的过程中Timer用于调度任务,TimeTask用户具体的实现,是线程安全的,代码如下:

public class TimeTest {

public static void main(String[] args) {Timer timer=new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {System.out.println("任务运行开始.......");}},new Date(),1000);
}}

3.ScheduledExecutorService实现方法
ScheduledExecutorService是从Java java.util.concurrent里 相比于上两个方法,它有以下好处:
相比于Timer的单线程,它是通过线程池的方式来执行任务的可以很灵活的去设定第一次执行任务 delay时间
具体代码如下:
方法说明:
ScheduledFuture<?> scheduleWithFixedDelay(Runnable command,
long initialDelay,
long delay,
TimeUnit unit)
创建并执行在给定的初始延迟之后首先启用的定期动作,随后在一个执行的终止和下一个执行的开始之间给定的延迟。 如果任务的执行遇到异常,则后续的执行被抑制。 否则,任务将仅通过取消或终止执行人终止。
参数
command - 要执行的任务
initialDelay - 延迟第一次执行的时间 (就是第一次指定定时延时多久),代码里我延时10秒
delay - 一个执行终止与下一个执行的开始之间的延迟
unit - initialDelay和delay参数的时间单位

public class ScheduledExecutorServiceTest {
public static void main(String[] args) {
ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
scheduledExecutorService.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
System.out.println(“任务!!!!”);
}
},10000,1000, TimeUnit.MILLISECONDS);
}}

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. amap高德地图poi附近地址查询

    通过给定一个经纬度,获取附近的地理位置信息(附近地址)1.首先初始化地图private var aMap: AMap? = nulloverride fun initView() {//初始化地图aMap = mapView.map//初始化定位蓝点val myLocationStyle = MyLocationStyle() //初始化定位蓝点样式类myLocationStyle.myLoca…...

    2024/5/2 23:36:12
  2. 二进制加法器

    关注我的公众号c137Lab获取更多相关内容基本 NNN 位二进制加法器由 NNN 个全加器(FA)组成,全加器的布尔方程如下: sk=xk⊕yk⊕ck s_k=x_k\oplus y_k\oplus c_k sk​=xk​⊕yk​⊕ck​ 对于 2C 加法器,最低位可以设计成半加器来减少占用。 逐位进位加法器 最简单的加法器,…...

    2024/4/16 14:09:41
  3. 直播知识点实录|百度大脑EasyDL产业应用系列 质检专场

    EasyDL产业应用系列【安全生产及数据处理】公开课,课程中不仅介绍了EasyDL在安全生产领域的落地案例与实战演示,还有新上线的EasyData智能数据服务平台功能与介绍。没有参加课程的小伙伴也不用担心,可通过实录完整解析 AI 巡检业务场景和定制 AI 解决方案,小时级成功变身 A…...

    2024/5/2 22:23:05
  4. 同余式、幂与费马小定理

    关注我的公众号c137Lab获取更多相关内容​ 看过了整数的规律,那么整数 aaa 的幂 a1,a2,⋯a^1,a^2,\cdotsa1,a2,⋯ 模 mmm 是否存在规律呢?一般来说,最好识别出同余规律的是素数,我们就从素数模开始。 ​ 按照一般数论研究的方法,我们先列出一些数据,观察其中是否存在某些…...

    2024/5/2 11:22:24
  5. 华文慕课计算机组成结构第二章课后习题解析

    1、(5分)下列哪些定律属于计算机行业的著名“定律”?A、 摩尔定律B、 反摩尔定律C、 墨菲定律D、 马太效应E、 木桶定律答案: A,B2、(5分)当前摩尔定律的常见表述是√A、 当价格不变时,集成电路可容纳的晶体管数数量,约每隔6个月便会增加一倍,性能也将提升一倍。 B、 当价…...

    2024/4/16 19:24:43
  6. JavaEE学习日志(一百一十三): 品优购项目准备,MyBatis逆向工程

    品优购项目(一)项目工程结构配置项目idea优化tomcat优化配置项目MyBatis逆向工程自动生成pojo和dao测试 项目工程结构配置项目 创建目录结构创建数据库表:省略 配置9个tomcatidea优化找到idea安装目录,我的是在D:\Program Files\JetBrains\IntelliJ IDEA 2017.3.2\bin目录中…...

    2024/4/18 17:51:18
  7. HTTP/HTTPS 请求与防抓包

    TCP/IP分层 TCP/IP的分层共分为四层:应用层、传输层、网络层、数据链路层;应用层:向用户提供应用层服务时的通讯活动(ftp、dns、http) 传输层:网络连接中两台计算机的数据传输(tcp、udp) 网络层:处理网络上流动的数据包,通过怎样的传输路径把数据包传送给对方(ip) …...

    2024/5/3 1:10:26
  8. Mysql优化

    收集各种mysql优化,以备不时之需 EXPLAIN 你的复杂SELECT查询使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的,帮你分析查询语句或是表结构的性能瓶颈。EXPLAIN 的查询结果还会告诉你你的索引主键被如何利用的,你的数据表是如何被搜索和排序。 LIMIT 1加上 LI…...

    2024/4/19 14:10:06
  9. 徒手开发一个Tomcat,极大提高自己的技术功底

    目录一:本项目是什么二:为什么要学习这个项目三:技术准备:四:与 Tomcat 的区别五:开发工具:Eclipse 还是 IDEA学习地址项目演示一:本项目是什么本项目是站长带着大家自己写一个 Tomcat,基本具备 Tomcat 的核心功能, 如:Html 文件纯文本文件日志功能多线程多应用404响应500响…...

    2024/4/24 7:37:09
  10. SSM整合相关 pom 和 xml 配置文件

    文章目录一、pom.xml二、搭建Spring框架的ApplicationContext.xml三、搭建SpringMVC框架的web.xml四、搭建SpringMVC的springMVC.xml四、log4j.properties 一、pom.xml<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><m…...

    2024/5/1 19:11:32
  11. JS-流程控制语句

    JS笔记三大流程控制语句1.顺序结构:代码自上而下顺序执行//输入两个数,然后交换这两个数,在输出它们交换的结果var num1 = 10;var num2 = 20;alert("num1=" + num1 + ",num2=" + num2);var tmp = num1;num1 = num2;num2 = tmp;alert("num1=" …...

    2024/4/24 7:37:04
  12. 软件测试的基本概念

    软件和软件测试 软件的分类: 按层次划分: - 系统软件 - 支持软件 - 应用软件** 软件缺陷的由来:Bug Defect软件缺陷的定义:软件未实现产品说明书要求的功能 软件出现了产品说明书指明不该出现的功能 软件实现了产品说明书未提及的功能 软件未实现产品说明书虽未明确提及但应…...

    2024/4/24 7:37:04
  13. Linux服务器必会命令-操作秀

    1.1 cd命令命令格式:cd <路径>意义:cd是change directory 的缩写;cd命令后面跟一个路径,用于切换当前用户所在的路径,其中路径可以是绝对路径也可以是相对路径。示例:cd /system/bin 表示切换到/system/bin路径下。cd logs 表示切换到logs路径下。cd / 表示切换到根…...

    2024/4/30 17:37:37
  14. Docker将springboot项目部署到centos服务器

    概述一下步骤连接到阿里云服务器下载docker下拉mysql并运行进入mysql对mysql进行设置本机图形化界面连接远程服务器的docker打包spring boot项目成镜像利用本机docker将本机镜像上传到阿里云镜像库在远程服务器中利用docker下拉阿里云镜像库中的镜像...

    2024/4/24 7:37:02
  15. junit 测试 注入 elasticsearch 异常 解决

    java.lang.NullPointerExceptionjava.lang.Exception: No tests found matching 如下图注解解决楼上两个异常,异常原因是启动了初始化未加载client 客户端 所以client 始终为null @RunWith(SpringRunner.class)@SpringBootTest(classes = XXXApplication.class)...

    2024/4/24 7:37:08
  16. openwrt 开启软看门狗

    折腾很久,终于测试成功,记录下! 1、打开内核的soft_watchdog。 键入make kernel_menuconfig 进入内核配置界面: 输入 / 检索2、输入make menuconfig 进入openwrt配置界面3、烧系统至盒子,ls /dev ,可以看到watchdog 硬件4 、watchdog -t 10 -T 4 -F /dev/watchdog ,wa…...

    2024/4/28 18:25:48
  17. 机器学习PYTHON实践

    目录绪论统计机器学习三要素监督学习无监督学习强化学习 绪论 机器学习,它致力于研究如何通过计算(CPU和GPU计算)的手段,利用经验来改善 (计算机)系统自身的性能。 机器学习所研究的主要内容:在计算机上从数据中产生“模型(model)”算法(学习算法) 数据+机器学习算法=…...

    2024/4/24 7:37:00
  18. BP神经网络解决相关问题

    利用BP神经网络工具箱解决分类的问题 BP介绍 BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络。 基本BP算法包括信号的前向传播和误差的反向传播两个过程。即…...

    2024/5/2 23:38:22
  19. 堆排序的删除和添加

    function Heap(type = min) {this.type = type;this.value = []; }Heap.prototype.create = function () {const length = this.value.length;// 构建大顶堆 for (let i = Math.floor((length / 2) - 1); i >= 0; i--) {this.ajust(i, length);} }Heap.prototype.ajust = fu…...

    2024/4/24 7:37:04
  20. 宝塔项目搭建出现的open_basedir错误解决方案

    1.站点设置中找到open_basedir将打勾去掉。2.重启PHP服务即可使用...

    2024/4/26 21:50:00

最新文章

  1. 苹果可能将OpenAI技术集成至iOS/iPadOS 18

    &#x1f989; AI新闻 &#x1f680; 苹果可能将OpenAI技术集成至iOS/iPadOS 18 摘要&#xff1a;苹果正在与OpenAI就将GPT技术部署在iOS/iPadOS 18中进行谈判。这项技术被视为可能增强的Siri功能&#xff0c;即“AI聊天机器人”。除Siri外&#xff0c;新技术还可能改善Spotl…...

    2024/5/3 5:17:27
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 【GIS学习笔记】polygon和multipolygon的转换

    写得比较全的polygon和multipolygon的介绍&#xff1a; https://www.cnblogs.com/billygisboy/p/17415573.html 从文本文件上看二者的区别就是"type":"Polygon"和"type":"MultiPolygon"&#xff0c;以及MultiPolygon多一层[]或()。 …...

    2024/5/3 2:06:35
  4. 爬虫学习第一天

    爬虫-1 爬虫学习第一天1、什么是爬虫2、爬虫的工作原理3、爬虫核心4、爬虫的合法性5、爬虫框架6、爬虫的挑战7、难点8、反爬手段8.1、Robots协议8.2、检查 User-Agent8.3、ip限制8.4、SESSION访问限制8.5、验证码8.6、数据动态加载8.7、数据加密-使用加密算法 9、用python学习爬…...

    2024/5/2 19:23:10
  5. 增加网站搜索引擎排名的6个准则

    怎样提高网站排名首页 在竞争激烈的网络世界中&#xff0c;网站的排名对于吸引流量和提升曝光至关重要。登上搜索引擎结果页面的首页&#xff0c;意味着更多的曝光和点击率。以下是一些方法&#xff0c;可以帮助您提高网站在搜索引擎中的排名&#xff0c;让其跻身首页&#xf…...

    2024/5/1 13:47:30
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/2 9:28:15
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57