多线程和单线程相比,只是对于一批的任务而言,减少了处理这一批任务的时间
但是对于一个任务所花费的时间,多线程必然要多于单线程,这是因为1. 如果申请的线程数多于cpu核数,线程的切换时间 2. 即使线程数小于核数,但是由于底层实现都会调用malloc函数,所以在多线程情况下,malloc在其内部实现时必然要解决冲突问题,应该会加锁或者其他方法,所以所用时间必然会增加
要注意的一点:在多线程中,类的程序变量要尽量避免用static, 这是全局的,要是有修改操作,必然要涉及到加锁
多线程和单线程相比,只是对于一批的任务而言,减少了处理这一批任务的时间
但是对于一个任务所花费的时间,多线程必然要多于单线程,这是因为1. 如果申请的线程数多于cpu核数,线程的切换时间 2. 即使线程数小于核数,但是由于底层实现都会调用malloc函数,所以在多线程情况下,malloc在其内部实现时必然要解决冲突问题,应该会加锁或者其他方法,所以所用时间必然会增加
要注意的一点:在多线程中,类的程序变量要尽量避免用static, 这是全局的,要是有修改操作,必然要涉及到加锁