通过实现Runnable接口的方式创建线程相比继承Thread类有很多优点,下面哪些是关于这些优点的描述(        )?
A 可以避免Java中的单继承的限制

B 代码可以被多个线程共享
C 可以提高并发程度
D 线程的运行速度更快