今天又进行了一次学长授课,关于MySQL和JDBC本来学了增删查改操作,用IDEA也可以操作数据库,今天讲了一些数据库的规范(三大范式)、以及er图。了解了一下项目。
项目要分为客户端和服务端(C/S)来写,用socket连接.我呢还没开始写,java学习快接近尾声了,明天起草一下项目思路,先去实现用户的登录操作;
多线程:
实现方式:
1.继承Thread类的方式
dog t1=new dog();
dog t2=new dog();
t1.setName("1:");
t2.setName("2:");
th th1=new th();
th th2=new th();
Thread th3=new Thread(th1);
Thread th4=new Thread(th2);
th3.setName("11:");
th4.setName("22:");
t1.start();
t2.start();
2.实现Runnable接口的方式 :
首先定义一个类实现R'unnable接口
重写run方法
创建自己的类
创建Thread开启线程
3.利用Cillection接口和Future接口实现:
ma f1=new ma();
ma f2=new ma();
FutureTask<Integer> ft=new FutureTask<>(f1);
Thread r1=new Thread(ft);
r1.start();
Integer result=ft.get();
System.out.println(result);
这个方法相对复杂,但其可以通过方法获得多线程的运行结果
一些基本知识:
1.线程是操作系统中独立的执行单元。
2.在Java程序中,每个线程都是一个对象,由Thread类的实例表示。
3.线程在Java中是轻量级的,可以创建多个线程来执行不同的任务,因此可以提高程序的并发性能。
4.Java中的线程优先级为1~10,数越大优先级越高。
Java多线程的相关API:
1.Thread类:Java多线程的基础类,用于表示一个线程,提供了一系列的方法以及操作,如start()、sleep()、join()等等。
2.Runnable接口:Java多线程的接口,通过实现这个接口来创建线程。
3.synchronized关键字:用来保证线程的安全性,将代码块或方法标记为同步的,以便同一时间只有一个线程可以执行该代码块或方法。
4.wait()、notify()、notifyAll():Java多线程的对象锁机制,用于实现线程间的通信,其中wait()方法使线程等待,notify()方法通知单个等待线程, notifyAll()方法通知所有等待线程。
5.Lock类:通过加锁和解锁的方式,保证同步使用共享资源,比synchronized关键字更加灵活。