包装类

image.png
新建线程的方法
1.继承thread,重写run方法
//创建线程类
public class ThreadDemo extends Thread {
//重写run()方法
@Override
public void run() {
for(int i = 0;i<1000;i++) {
System.out.println("Thread::"+i);
}
}
}
/***********************************************************************/
//调用线程
//创建线程对象
ThreadDemo t1 = new ThreadDemo();
//启动线程
t1.start();
2实现Runnable接口
在runnable接口实现中,重写run方法,再将runnable实现类传入Thread类中
//实现Runnable 接口创建线程类 RThread
public class RThread implements Runnable {
@Override
//重写run()方法
public void run() {
for(int i = 0;i<1000;i++) {
System.out.println("Thread::"+i);
}
}
}
/***********************************************************************/
//调用线程
//创建RThread 类的对象 rThread
RThread rThread = new RThread();
//创建Thread类对象,并把rThread当成参数传入,相当于对rThread进行了封装。
Thread t2 = new Thread(rThread);
//通过start()方法启动线程
t2.start();
3.利用线程池创建
在execute方法类中,new runnable,并重写run方法
public class EThread {
public static void main(String[] args) {
//创建线程池
ExecutorService threadPool = Executors.newFixedThreadPool(10);
for(int i = 0;i<10;i++) {
//调用execute()方法创建线程
//采用匿名内部类的方法,创建Runnable对象,并重写run()方法
threadPool.execute(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
});
}
}
}
最左匹配原则
遇到范围匹配就会停止

image.png
消息队列的作用
能够使大量的请求不直接落在数据库上,而且能够异步请求数据库,不用一直阻塞

image.png
分表
垂直分表
耦合度低的单独分为一个表,一个微服务弄一个表

image.png
水平分表
按照逻辑分,比如按照时间范围来划分表

image.png