目录
1.什么是线程池,线程池的优势
创建一个线程,就是要这个线程去完成某种任务的。
池化技术就是,提前创建一批线程,有任务这一批线程就会执行。而不是有任务的时候在去创建线程。
池化技术有着更高的效率,因为线程都是提前创建好的,直接执行任务。
2.懒汉和饿汉模式
懒汉和饿汉模式是一种设计模式
懒汉模式:
例:进程需要一块内存资源,什么时候真正用到了这块内存时,我在去创建而不是提前创建。
这种模式的优点就是,启动的更快,程序启动时,数据要加载到内存,懒汉就是延时加载,用的时候在加载。
3.单例模式
就是某一些类,就应该只有一个对象,不应该有多个。
线程池就是这样的,创建两个线程池也没有意义,可以多创建几个线程。
实现方法
将类的构造函数进行私有,这样就无法在创建对象了。
在类中提供一个共有的静态方法,这个方法可以初始化和获取线程池。
4.日志系统
这个没什么难度,就是字符串的拼接,可能需要注意的就是可变参数的使用。
log.hpp
#ifndef __LOG_HPP__
#define __LOG_HPP__
#include <iostream>
#include <string>
#include <time.h>
#include <pthread.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdarg.h>
#include <fstream>
// 日志等级
enum loglevel
{
Debug = 0,
Info,
Warning,
Error,
FATAL,
};
namespace lg
{
bool isSave = false; //是否保存到文件
std::string savefile = "log.txt";//保存的文件名
std::string LeveltoString(int level) //将日志等级转化为字符串
{
switch (level)
{
case Debug:
return "Debug";
case Info:
return "Info";
case Warning:
return "Warning";
case Error:
return "Error";
case FATAL:
return "FATAL";
default:
return "Unknown";
}
}