python进程池用不了类方法(self)

import multiprocessing
import time

def fun():
time.sleep(2)
print('----')

class T:

def __init__(self):
    self.p = multiprocessing.Pool(4)

# @staticmethod
def fun(self):
    time.sleep(3)
    print('----')

def run(self):
    for i in range(10):
        self.p.apply_async(self.fun)
    self.p.close()
    self.p.join()

    print('end')

if name == '__main__':
a = T()
a.run()

import multiprocessing
import time

class T(object):



    # @staticmethod
    def fun(self):
        time.sleep(3)
        print('----')


    def run(self):
        p = multiprocessing.Pool(4)
        for i in range(4):
            p.apply_async(self.fun)
        p.close()
        p.join()
        print('end')

if __name__ == '__main__':

    a = T()
    a.run()